Main Content

MISRA C++:2008 Rule 2-10-4

A class, union or enum name (including qualification, if any) shall be a unique identifier

Description

Rule Definition

A class, union or enum name (including qualification, if any) shall be a unique identifier.

Rationale

Using nonunique identifiers makes the code confusing and difficult to maintain. You might use the wrong identifier in your code and introduce bugs that are difficult to fix.

Polyspace Implementation

The rule flags identifier declarations where the identifier name is the same as a previously declared class, union or typedef name. The checker does not flag situations where the conflicting names occur in different namespaces.

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

expand all

void f1() {
    class floatVar {};
}

void f2() {
    float floatVar; //Noncompliant
}

In this example, the declaration of floatVar in f2() conflicts with a class declaration in f1().

Check Information

Group: Lexical Conventions
Category: Required

Version History

Introduced in R2013b