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