Pothos
0.4.0-gd11861cd
The Pothos dataflow programming software suite
|
Go to the source code of this file.
Namespaces | |
Pothos | |
Macros | |
#define | POTHOS_STATIC_FIXTURE_DECL |
#define | pothos_static_block(name) |
Static initialization implementation for load-time registration.
#define pothos_static_block | ( | name | ) |
pothos_static_block - macro that declares code to be run at init time Example usage: pothos_static_block(someValidFunctionName) { //your code here to be run at init time }
#define POTHOS_STATIC_FIXTURE_DECL |
Define the tokens used to declare a static block's function. The address of the function is used to make the static fixture class unique across the complete library + module address space.
Clang can only use static, inline functions of the same name will overlap. MSVC can only use inline because static cannot be used as a template argument. And GCC can handle all possibilities: static, inline, and static inline.
The specific reason for this implementation and its caveats is because clang will cause symbol overlap for class and functions with the same name across modules, even if they are not exported.