<分区>
Possible Duplicate:
Is const_cast safe?
显然我永远不会写这段代码,但它是真实程序中出现的一个非常简单的例子。
#include <iostream>
void change(const int& data)
{
int& data2 = const_cast<int&>(data);
data2 = 100;
}
int main()
{
int thing = 123;
change(thing);
std::cout << thing << "\n";
}
这是否会改变所引用的数据是明确定义的行为,还是允许编译器假设因为它传递的是 const int&
函数无法更改传入的值并生成相应的代码?
编辑:我尝试过的所有编译器都输出更改后的值 100。
这似乎是 Can C++ compiler assume a const bool & value will not change? 的拷贝所以我很高兴结束这个。