MISRA C++:2008 Rule 4-5-3
Expressions with type (plain) char and wchar_t shall not be used as operands to built-in operators other than the assignment operator =, the equality operators == and !=, and the unary & operator N
Description
Rule Definition
Expressions with type (plain) char and wchar_t shall not be used as operands to built-in operators other than the assignment operator =, the equality operators == and !=, and the unary & operator. N1
Rationale
The C++ Standard requires that the characters '0'
to
'9'
have consecutive values. Other characters do not have well-defined
values. If you use these characters in operations other than the ones mentioned in the rule,
you implicitly use their underlying values and might see unexpected results.
Polyspace Implementation
Polyspace® reports a violation of this rule if char
and
wchar_t
type expressions are used with operators other than these:
=
==
!=
unary
&
Troubleshooting
If you expect a rule violation but Polyspace does not report it, see Diagnose Why Coding Standard Violations Do Not Appear as Expected.
Examples
Check Information
Group: Standard Conversions |
Category: Required |
Version History
Introduced in R2013b
1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.
The MISRA coding standards referenced in the Polyspace Bug Finder™ documentation are from the following MISRA standards:
MISRA C:2004
MISRA C:2012
MISRA C:2023
MISRA C++:2008
MISRA C++:2023
MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.