C and C++


LANG.STRUCT.USING.HDIR : Using Directive in Header File

Summary

An occurrence of a using directive in a header file (defined as a source file that is #included in a compilation unit).

This class is a strict subset of Using Directive.

Properties

Class Name Using Directive in Header File
Significance style
Mnemonic LANG.STRUCT.USING.HDIR
Categories
AUTOSARC++14 AUTOSARC++14:M7-3-4 Using-directives shall not be used.
  AUTOSARC++14:M7-3-6 Using-directives and using-declarations (excluding class scope or function scope using-declarations) shall not be used in header files.
MisraC++2008 MisraC++2008:7-3-4 using-directives shall not be used.
  MisraC++2008:7-3-6 using-directives and using-declarations (excluding class scope or function scope using-declarations) shall not be used in header files.
Availability Available for C and C++.
Enabling Checks for this warning class are disabled by default, and require the unnormalized C ASTs for the project. To enable them, add the following WARNING_FILTER rule and RETAIN_UNNORMALIZED_C_AST specification to the project configuration file.
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="Using Directive in Header File"
Note that retaining the unnormalized ASTs will increase the disk space used to store the project representation, and may make the analysis take longer.

Example

/* LANG.STRUCT.USING.HDIR.cpp */

#include "LANG.STRUCT.USING.HDIR.hpp"
/* LANG.STRUCT.USING.HDIR.hpp */

namespace ns_directive{
  int dirA;
  int dirB;
}

namespace ns_declaration{
  int declA;
  int declB;
}

namespace ns_other{
  int otherA;
  int otherB;
}

using namespace ns_directive;  /* 'Using Directive in Header File' warning issued here.
                                * (Will also trigger 'Using Directive' if enabled.) */

using ns_declaration::declA;                 /* using declaration (not directive)
                                              * (Will trigger 'Using Declaration in Header File' if enabled.) */

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.