Lambda used as typeid operand
typeid
is used on lambda expression
Description
This defect occurs when you use
typeid
on a lambda expression.
Risk
According to the C++ Standard, the type of a lambda expression is a unique, unnamed
class type. Because the type is unique, another variable or expression cannot have the same
type. Use of typeid
on a lambda expression indicates that you expect a
second variable or expression to have the same type as the operand lambda expression. Using
the type of a lambda expression in this way can lead to unexpected results.
typeid
returns the data type of its operand. Typically the operator
is used to compare the types of two variables. For
instance:
(typeid(var1) == typeid(var2))
var1
and var2
. This use does not apply to a lambda
expression, which has a unique type.Fix
Avoid using the typeid
operator on lambda expressions.
Examples
Result Information
Group: Object Oriented |
Language: C++ |
Default: On for handwritten code, off for generated code |
Command-Line Syntax:
LAMBDA_TYPE_MISUSE
|
Impact: Low |
Version History
Introduced in R2019b
See Also
Topics
- Interpret Bug Finder Results in Polyspace Desktop User Interface
- Interpret Bug Finder Results in Polyspace Access Web Interface (Polyspace Access)
- Address Results in Polyspace User Interface Through Bug Fixes or Justifications
- Address Results in Polyspace Access Through Bug Fixes or Justifications (Polyspace Access)