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