Определяемые пользователем суффиксы определяемых пользователем литеральных операторов должны запуститься с подчеркивания, сопровождаемого одной или несколькими буквами.
Определяемые пользователем суффиксы определяемых пользователем литеральных операторов должны запуститься с подчеркивания, сопровождаемого одной или несколькими буквами.
Начиная с C++ 11, можно добавить суффиксы в литералы, которые преобразуют числовые значения под капотом. Например, в коде, где вы выполняете все вычисления в общем модуле, можно оставить модульные преобразования в специализированные операторы и просто использовать литеральные суффиксы в модулях при определении постоянных значений.
В этом примере, литеральные суффиксы _m
и _km
решите к вызовам operator"" _m()
и operator"" _km()
соответственно. Операторы гарантируют, что все значения преобразованы в тот же модуль.
constexpr long double operator"" _m(long double metres) { return metres; } constexpr long double operator"" _km(long double kilometres) { return 1000*kilometres; } ... long double minSteps = 100.0_m; long double interCityDist = 100.0_km;
Определяемые пользователем литеральные суффиксы должны начаться с подчеркивания (_
). Литеральные суффиксы, не начинающиеся с подчеркивания, резервируются для членов стандартной библиотеки.
Средство проверки правила отмечает определения формы:
operator "" suffix
suffix
не начинается с подчеркивания или после подчеркивания, содержит символы кроме букв (числа, специальные символы, и так далее).Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: Перегрузка |