在不进行强制转换的情况下,将类型分配给文字基元的方法有哪些?
我知道0.0变为 double 值,而0.0f变为浮点型。还有其他方式来转换文字吗?
最佳答案
您可以将一堆suffixes添加到整数文字中以获得所需的类型:
1 // int
2u // unsigned int
3ll // long long int
4ull // unsigned long long int
类似地,对于floating literals,没有后缀给出
double
,f
给出float
,l
给出long double
。对于小于
int
的类型,没有预包装的文字后缀。但是您可以自己编写,例如:inline uint16_t operator ""_u16(uint64_t value) {
return static_cast<uint16_t>(value);
}
5_u16 // uint16_t
除了VC显然为所有类型提供文字后缀-像
10i16
给你一个int16_t
。关于c++ - 将类型分配给原始文字的快捷方式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42372745/