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