有时,在传递或返回结构时,可能需要将某些字段设为常量:
struct A
{
char c;
int x;
};
struct B
{
const char c;
int x;
};
void process(B& b)
{
if(b.c=='1')
b.x++;
}
void test()
{
A a;
a.c = '1';
a.x = 0;
process(reinterpret_cast<B&>(a));
}
这种部分 const 类型转换是否足够便携和安全?
最佳答案
没有这样的技术是不安全的,它是未定义的行为 - 在不相关的类型之间进行转换,即使它们看起来相似,也绝不安全。
关于c++ - C++ 中的部分 const 类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27962260/