重新解释从指针向量转换为const指针向量安全吗?

时间:2012-09-05 11:14:40

标签: c++ vector const reinterpret-cast

这种转换类型是否安全

vector<int*> a;
const vector<const int*>& b = reinterpret_cast<const vector<const int*>&>(a);

在这种情况下静态转换显然不起作用,因为模板参数正在改变。但是通过这个重新解释演员,我只是将constness添加到基本相同的类型。那么这对所有实际目的来说都是安全的吗?

1 个答案:

答案 0 :(得分:7)

就像使用reinterpret_cast将引用转换为不相关类型一样,它会给出未定义的行为,因此除非您将“safe”定义为“适用于我的编译器”,否则不安全。