Закрепленная инициализация {}, без равняется знаку, буду использоваться в переменной инициализации.
Закрепленная инициализация {}, без равняется знаку, буду использоваться в переменной инициализации.
Заключенная в фигурные скобки инициализация:
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