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