Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将类型指定给基元文字的简写方法_C++_Types_Overloading_Literals - Fatal编程技术网

C++ 将类型指定给基元文字的简写方法

C++ 将类型指定给基元文字的简写方法,c++,types,overloading,literals,C++,Types,Overloading,Literals,在没有强制转换的情况下,将类型分配给文字原语的方法有哪些? 我知道0.0变成双精度,0.0f变成浮点。是否有其他方法可以对文本进行类型转换?有许多方法可以添加到整数文本中,以获得所需的类型: 1 // int 2u // unsigned int 3ll // long long int 4ull // unsigned long long int 类似地,例如,没有后缀表示double,f表示float,l表示long double 小于int的类型没有预先打包的文字后缀。但您可

在没有强制转换的情况下,将类型分配给文字原语的方法有哪些? 我知道0.0变成双精度,0.0f变成浮点。是否有其他方法可以对文本进行类型转换?

有许多方法可以添加到整数文本中,以获得所需的类型:

1    // int
2u   // unsigned int
3ll  // long long int
4ull // unsigned long long int
类似地,例如,没有后缀表示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

您可以向整型文字中添加一些类型,以获得所需的类型:

1    // int
2u   // unsigned int
3ll  // long long int
4ull // unsigned long long int
类似地,例如,没有后缀表示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

你真正想解决的问题是什么?我不明白你的问题是什么。我不想每次都做“静态播放0”。我似乎无法让谷歌告诉我如何做0.0f速记之类的事情。你能把你的问题改写一下吗?我不知道union与任何事情有什么关系。0u是无符号的,因此它希望调用uint32\u t构造函数。顺便说一句,您可以将0.0f写为0.f。您实际要解决的问题是什么?我不明白你的问题是什么。我不想每次都做“静态播放0”。我似乎无法让谷歌告诉我如何做0.0f速记之类的事情。你能把你的问题改写一下吗?我不知道union与任何事情有什么关系。0u是未签名的,因此它希望调用uint32\u t构造函数。顺便说一句,您可以将0.0f编写为0.f。