Определяемые пользователем суффиксы определяемых пользователем литеральных операторов должны запуститься с подчеркивания, сопровождаемого одной или несколькими буквами.
Определяемые пользователем суффиксы определяемых пользователем литеральных операторов должны запуститься с подчеркивания, сопровождаемого одной или несколькими буквами.
Начиная с 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 не начинается с подчеркивания или после подчеркивания, содержит символы кроме букв (числа, специальные символы, и так далее).Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
| Группа: Перегрузка |