При использовании линии
using std::literals::chrono_literals::operator""s;
в g ++ 6.3.0 компилятор выдает предупреждение, в котором говорится:
предупреждение: буквальные суффиксы операторов, которым не предшествует ‘_’, зарезервированы для будущей стандартизации
using std::literals::chrono_literals::operator""s;
Аналогичное предупреждение также выдается в MSVS. Однако clang 3.8.0 не выдает такого предупреждения.
поскольку operator""s
определяется стандартом для библиотеки chrono, разве это не должно выдавать предупреждение, поскольку мы просто импортируем имя, а не определяем его?
Возможно, формулировка достаточно ясна по этому вопросу —[Over.literal] / 1:
Некоторые буквенные идентификаторы суффикса
зарезервировано для будущей стандартизации; см. 17.6.4.3.5. Декларация чья буквальный-оператор-идентификатор использует такой буквальный суффикс
идентификатор плохо сформирован; Диагностика не требуется.
Это можно интерпретировать как ссылку на объявления (оператор UDL), чье «имя» является буквальный-оператор-идентификатор— что, конечно, исключает ваш случай, так как буквальный-оператор-идентификаторс не имеют квалификации. То же самое касается [Reserved.names] / 2, где «контекст» — это объявления пользовательских литеральных операторов.
Других решений пока нет …