7

私は 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 を使用して、上記の一般的なケースをシミュレートできますか?」です。

4

1 に答える 1