例如,如果我写32u然后c ++理解它是unsigned int或者如果我写0x然后c ++理解它将被视为十六进制数。
我想知道的是,是否有某种方法来定义更多这些?就像我写128M然后它将转换为134217728或12K将转换为12288等。
答案 0 :(得分:4)
使用C ++ 11用户定义的文字:
constexpr unsigned long long operator"" _M(unsigned long long lit) {
return lit * 1024 * 1024;
}
//use: 128_M
下划线是因为您定义的所有用户定义的文字都需要以一个开头。那些没有保留并将开始被标准使用的是C ++ 14。