例如,如果我写 32u,那么 C++ 就会理解它是用于无符号整数,或者如果我写 0x,那么 C++ 就会理解它是一个十六进制数。
我想知道是否有一些方法可以定义更多这些?就像我写 128M 那么它会被转换为 134217728 或 12K 会被转换为 12288 等等。
最佳答案
使用 C++11 用户定义字面量:
constexpr unsigned long long operator"" _M(unsigned long long lit) {
return lit * 1024 * 1024;
}
//use: 128_M
有下划线是因为您定义的所有用户定义文字都需要以一个开头。那些没有被保留的,将开始被 C++14 标准使用。
关于c++ - 实现数据输入速记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16867840/