簡體   English   中英

如何static_cast到變量類型

[英]How to static_cast to the type of variable

如果我有一個已知類型的變量或成員,是否可以在不明確說明類型的情況下將其靜態轉換為該類型?

因此,確保將來需要更改變量類型時,只需重新編譯即可。

一個非常基本的示例是:

int y = 5;
uint32_t x;
x = static_cast< TYPEOF( x ) >( foo );

現在,如果將來某時需要將x更改為int64_t,那么說,如果僅更改所需變量的聲明而不更改所有static_cast行(其中可能有很多行),那會很好。

作為個人說明,我正在使用g ++ 6進行編譯,因此我能夠使用c ++ 14功能,盡管與其他版本兼容的答案可能會使其他人受益。

只需使用decltype

x = static_cast<decltype(x)>(y);

如上述評論所述,解決方案是

int y = 5;
uint32_t x;
x = static_cast< decltype( x ) >( y );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM