register_type
, so use this carefully!)
index
for each type Derived
that RegisteredType
is instantiated with.inline
variable, we have to "use" it to ensure it is instantiated. The default constructor will suffice.
index
is a static variable, its initializer will be called at static initialization time
register_type()
will be called once for each Derived
in the compiled program.inline
variables must be de-duplicated across translation units.
__cxx_global_var_init
symbols are properly de-duplicated across translation units at link time.
N
when we can construct it with N
objects but not with N+1
: