繁体   English   中英

C ++:如何安全地将const double **转换为const void **

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM