私は 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;
}
しかし、一般的なケースでは、シミュレートできませんでした。
auto general_case = 123_456_789; //コンパイルできません
私の質問は、「C++11 を使用して、上記の一般的なケースをシミュレートできますか?」です。