typeid
используется на лямбда-выражении
Этот дефект происходит, когда вы используете typeid
на лямбда-выражении.
Согласно Стандарту C++, тип лямбда-выражения является уникальным, типом класса без имени. Поскольку тип уникален, другая переменная или выражение не могут иметь того же типа. Использование typeid
на лямбда-выражении указывает, что вы ожидаете, что вторая переменная или выражение будут иметь тот же тип как лямбда-выражение операнда. Используя тип лямбда-выражения таким образом может привести к неожиданным результатам.
typeid
возвращает тип данных его операнда. Обычно оператор используется, чтобы сравнить типы двух переменных. Например:
(typeid(var1) == typeid(var2))
var1
и var2
. Это использование не применяется к лямбда-выражению, которое имеет уникальный тип.Избегайте использования typeid
оператор на лямбда-выражениях.
Группа: объектно-ориентированный |
Язык: C++ |
Значение по умолчанию: На для рукописного кода, прочь для сгенерированного кода |
Синтаксис командной строки:
LAMBDA_TYPE_MISUSE
|
Удар: низко |