[英]c++: How do I safely cast a const double** to a const void**
以下代码给出了C ++中的编译器错误:
const double** x;
const void** y = x;
您如何获得const安全等效项?
当然,您可以通过简单的强制转换来使其工作:
const void** y = (const void**) x;
但是肯定编译器应该知道这一点吗? 为什么会抱怨?
为什么编译器应该知道那可以? 我想你想要以下内容
void *y = x;
x = static_cast<const double**>(y); // casting back needs static_cast or c-style cast
void**
没有void*
具有的特殊属性(作为通用数据指针)。
因为那不行。
有一个常见问题解答解释了为什么,但我现在似乎找不到。
您的C-Style强制类型转换为reinterpret_cast,它告诉编译器忽略类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.