簡體   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