在不进行强制转换的情况下,将类型分配给文字基元的方法有哪些?
我知道0.0变为 double 值,而0.0f变为浮点型。还有其他方式来转换文字吗?

最佳答案

您可以将一堆suffixes添加到整数文字中以获得所需的类型:

1    // int
2u   // unsigned int
3ll  // long long int
4ull // unsigned long long int

类似地,对于floating literals,没有后缀给出doublef给出floatl给出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/

10-11 22:56
查看更多