繁体   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