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