Пока clang компилирует следующую строку, g++ 6.1 жалуется на разделитель цифр (см. живой пример на Coliru):
auto time = 01'23s;
Какой компилятор, если он есть, является правильным в соответствии со стандартом С++ 14 (N3796)?
В противном случае разрешает разделители цифр (§2.14.2) только деталь реализации в пользовательских литералах (§2.14.8) библиотеки <chrono>
(§20.12.5.8)? ИМХО это не должно быть, поскольку эти литералы определены на параметрах unsigned long long
.
Я помню, как Говард Хиннант использовал 10'000s
в качестве примера во время беседы CppCon 2016" Учебное пособие <chrono>
(примерно 42 минуты в его разговоре).
(Пожалуйста, обратите внимание, что я не собирался вводить код "1 минута и 23 секунды", который корректен только с ошибкой, так как восьмеричный литерал 0123 равен 64 + 16 + 3 == 83 Для этого я должен написать
auto time = 1min + 23s;
но эта возможная вводящая в заблуждение интерпретация не является частью вопроса.)