我可以指定一个 unsigned long 类型的整数文字,如下所示:
const unsigned long example = 9UL;
对于 unsigned char 我该如何处理?
const unsigned char example = 9U?;
这是避免编译器警告所必需的:
unsigned char example2 = 0;
...
min(9U?, example2);
我希望避免我目前拥有的冗长解决方法,并且没有在调用 min 的行中出现“unsigned char”而不在单独的行上的变量中声明 9:
min(static_cast<unsigned char>(9), example2);
最佳答案
C++11 引入了用户定义的文字。可以这样使用:
inline constexpr unsigned char operator "" _uchar( unsigned long long arg ) noexcept
{
return static_cast< unsigned char >( arg );
}
unsigned char answer()
{
return 42;
}
int main()
{
std::cout << std::min( 42, answer() ); // Compile time error!
std::cout << std::min( 42_uchar, answer() ); // OK
}
关于c++ - 如何在 C++ 中指定 unsigned char 类型的整数文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2304732/