Переменная типа auto не должна быть инициализирована с помощью {} или = {} braced-initialization
Переменная типа auto не должна быть инициализирована с помощью {} или = {} braced-initialization.
Вычет по типу для auto
имеет контринтуитивный результат, когда инициализация использует скобки. Выводимый тип std::initializer_list<>
вместо типа, который можно угадать из инициализатора.
Для образца, определение:
auto x{1};
x
будучи std::initializer_list<int>
вместо int
. Некоторые компиляторы выводят int
тип из этого определения, но поведение неоднородно для компиляторов.Шашка помечает определения переменных, которые используют тип auto
если переменная инициализирована с помощью {}
или ={}
инициализация скобок.
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
Группа: Деклараторы |
Категория: Необходимый, Автоматизированный |