gpt4 book ai didi

c++ - 丢弃 const,这是定义明确的行为吗?

转载 作者:太空狗 更新时间:2023-10-29 23:18:47 27 4
gpt4 key购买 nike

<分区>

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? 的拷贝所以我很高兴结束这个。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com