Macros | |
#define | ein_visibility(...) |
[[visibility(x)]] | |
#define | ein_exclude_from_explicit_instantiation |
exclude this member from explicit template instantiation. | |
#define | ein_hidden ein_visibility("hidden") ein_exclude_from_explicit_instantiation |
[[visibility("hidden")]] [[exclude_from_explicit_instantiations]] | |
attributes that can control explicit template instantiation
#define ein_exclude_from_explicit_instantiation |
exclude this member from explicit template instantiation.
Usually paired with ein_visibility("hidden")
, see ein_hidden
Definition at line 348 of file common.hpp.
#define ein_hidden ein_visibility("hidden") ein_exclude_from_explicit_instantiation |
[[visibility("hidden")]] [[exclude_from_explicit_instantiations]]
Use to exclude from both having to compute in explicit template instantiations and expecting it to be stored. This means that the resulting member is safely delayed to the usage site, despite the template being explicitly otherwise instantiated. Useful for #ein_inline
and the general sort of SIMD intrinsic wrappers where there's no point in emitting a function body that will never be called, and will just bloat executable size.
Definition at line 365 of file common.hpp.
#define ein_visibility | ( | ... | ) |
[[visibility(x)]]
Primarily used for [[visibility("hidden")]]
to disable inclusion of the symbol in the resulting library
Definition at line 333 of file common.hpp.