我正在学习C++ 11,并对用户定义的文字感兴趣。 所以我决定玩一下。 有些语言有这样的语法:C++ 11用户定义的文字
int n = 1000_000_000;
我试图模拟C++ 11此功能。
inline constexpr unsigned long long operator "" _000 (unsigned long long n)noexcept
{
return n * 1000;
}
inline constexpr unsigned long long operator "" _000_000 (unsigned long long n)noexcept
{
return n * 1000*1000;
}
inline constexpr unsigned long long operator "" _000_000_000 (unsigned long long n)noexcept
{
return n * 1000*1000*1000;
}
int main(){
constexpr auto i = 100_000; // instead of 100000
constexpr auto j = 23_000_000; // instead of 23000000;
}
但对于一般情况下,我不能模拟它,即
汽车general_case = 123_456_789; //无法编译
我的问题是“我可以使用C++ 11模拟上述一般情况吗?”。
它是否适用于1_000_000?我个人会使用自定义用户文字和字母K M G(千兆兆)。 – dtech
1_000_000编译!!! –
@ddriver唯一的问题是,那么你不能确切的 – aaronman