multiple inclusion of header files accross

Eljay Love-Jensen
Mon Sep 15 19:49:00 GMT 2003

Hi Aaron,

In typical C/C++ files, header files should not generate any bytes of output.  Declarations are okay, instantiated definitions are not.

 From Stroustrup's C++PL section 9.2.1

As a rule of thumb, a header may contain:
+ named namespaces
+ type definitions
+ template declarations
+ template definitions
+ function declarations
+ inline function definitions
+ data declarations
+ constant defintions
+ enumerations
+ name declarations (forward declarations)
+ include directives
+ macro definitions
+ conditional compilation directives
+ comments

Conversely, a header should never contain:
+ ordinary function definitions
+ data definitions
+ aggregate definitions
+ unnamed namespaces
+ exported template definitions


More information about the Gcc-help mailing list