实现数据录入的速记?

时间:2013-06-01 00:29:20

标签: c++

例如,如果我写32u然后c ++理解它是unsigned int或者如果我写0x然后c ++理解它将被视为十六进制数。

我想知道的是,是否有某种方法来定义更多这些?就像我写128M然后它将转换为134217728或12K将转换为12288等。

1 个答案:

答案 0 :(得分:4)

使用C ++ 11用户定义的文字:

constexpr unsigned long long operator"" _M(unsigned long long lit) {
    return lit * 1024 * 1024;
}

//use: 128_M

下划线是因为您定义的所有用户定义的文字都需要以一个开头。那些没有保留并将开始被标准使用的是C ++ 14。