2 The ODR is the one that sais that functions shouldn't appear
3 in header files. The exceptions are:
5 1. 'static inline' functions
6 ~~ ~~~~~~~ ~~~~~~~ ~~~~~~~~~
8 'static inline' functions are very useful. They can be defined in
9 header files but their code only exists in the object files that use
10 them. 'inline' may not be obeyed by the compiler, but the effect
18 static inline int f ();
30 Functions defined in the definition of a class, are converted
31 to 'static inline's by lwc. As in C++, it's ok to have these
37 int f () { /* ... */ }
44 Definitions of auto functions can appear in header files. lwc
45 puts those functions in linkonce sections.
59 4. member functions of template classes
60 ~~ ~~~~~~ ~~~~~~~~~ ~~ ~~~~~~~~ ~~~~~~~
62 Their specializations are placed in linkonce sections as well.
79 Functions explictly declared linkonce: