我正在学习 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 模拟上述一般情况吗?”。