Лямбда не должна быть операндом для объявления типа или типа
Лямбда не должна быть операндом для объявления типа или типа.
Согласно стандарту C++, тип лямбда-выражения является уникальным, безымянным типом класса. Поскольку тип уникален, другая переменная или выражение не могут иметь тот же тип. Использование decltype
или typeid
в выражении лямбда указывает, что вы ожидаете, что вторая переменная или выражение имеют тот же тип, что и выражение операнда лямбда.
Оба decltype
и typeid
возвращает тип данных их операндов. Обычно операторы используются для:
Присвойте тип другой переменной. Для образца:
decltype(var1) var2;
var2
с тем же типом, что и var1
.Сравните типы двух переменных. Для образца:
(typeid(var1) == typeid(var2))
var1
и var2
.Эти использования не применяются к лямбда-выражению, которое имеет уникальный тип.
Флажки проверки правил используют decltype
и typeid
с лямбда-выражениями.
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
Группа: Лексические конвенции |
Категория: Необходимый, Автоматизированный |