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