clang は次の行をコンパイルしますが、g++ 6.1 は桁区切り記号について不平を言います ( Coliru のライブ例を参照)。
auto time = 01'23s;
C++14 標準 (N3796) に従って正しいコンパイラはどれですか?
それ以外の場合、桁区切り記号 (§2.14.2) は、<chrono>
ライブラリ (§20.12.5.8) のユーザー定義リテラル (§2.14.8) の実装の詳細にすぎませんか? unsigned long long
これらのリテラルはパラメーターで定義されているため、私見ではありません。
Howard HinnantがCppCon 2016 のトーク "A tutorial" (トークの約 42 分) で10'000s
例として使用したことを覚えています。<chrono>
( 8 進リテラル 0123 は 64 + 16 + 3 == 83 であるため、 「1 分 23 秒」をコード化するつもりはなかったことに注意してください。これは偶然に正しいだけです。その目的のために、次のように記述します。
auto time = 1min + 23s;
しかし、その誤解を招く可能性のある解釈は問題の一部ではありません.)