Next: , Previous: Restricted Pointers, Up: C++ Extensions  7.3
Vague Linkage  There are several constructs in C++ which require
space in the object file but are not clearly tied to a single
translation unit. We say that these constructs have “vague
linkage”. Typically such constructs are emitted wherever they
are needed, though sometimes we can be more clever.  Inline
Functions Inline functions are typically defined in a header
file which can be included in many different compilations.
Hopefully they can usually be inlined, but sometimes an out-of-
line copy is necessary, if the address of the function is taken
or if inlining fails. In general, we emit an out-of-line copy in
all translation units where one is needed. As an exception, we
only emit inline virtual functions with the vtable, since it
will always require a copy.  Local static variables and string
constants used in an inline function are also considered to have
vague linkage, since they must be shared between all inlined and
out-of-line instances of