Закрепленная инициализация {}, без равняется знаку, буду использоваться для переменной инициализации
Закрепленная инициализация {}, без равняется знаку, буду использоваться для переменной инициализации.
Заключенная в фигурные скобки инициализация:
classType Object{arg1, arg2, ...};
Предотвращает неявные преобразования сужения такой как от double
к float
.
Избегает неоднозначного синтаксиса, который приводит к проблеме самого раздражающего синтаксического анализа.
Например, от объявления:
ResourceType aResource();
aResource
функция, возвращающая переменную типа ResourceType
или объект типа ResourceType
.Для получения дополнительной информации смотрите Ambiguous declaration syntax
.
Правило также запрещает использование =
распишитесь за инициализацию потому что =
знак может произвести впечатление, что присвоение или копирует конструктора, вызывается даже в ситуациях, когда это не.
В общем случае средство проверки отмечает инициализации объекта obj1
из типа данных Type
использование этих форматов:
Type obj1 = obj2;
Type obj1(obj2);
Средство проверки позволяет исключение для этих случаев:
Инициализация переменных с типом auto
с помощью простого присвоения на константу, переменную, лямбда-выражение, стандартный список инициализаторов или вызов функции.
Инициализация ссылочных типов с помощью простого присвоения
Объявления с глобальной областью видимости с помощью формата Type a()
где Type
тип класса с конструктором по умолчанию. Анализ интерпретирует a
как функция, возвращающая тип Type
.
Инициализация переменной цикла в OpenMP параллельна for
циклы, то есть, в for
инструкции циклов, которые сразу следуют за #pragma omp parallel for
Средство проверки включено, только если вы задаете версию C++ C++ 11 или позже. Смотрите C++ standard version (-cpp-version)
.
Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.
Группа: операторы объявления |
Категория: необходимый, автоматизированный |
Ambiguous declaration syntax
| Variable shadowing
| Non-initialized variable
| Write without a further read
| Improper array initialization
| Check AUTOSAR C++ 14 (-autosar-cpp14)