Pothos  0.2.1-g9f04573d
The Pothos dataflow programming software suite
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros
Macros
Config.hpp File Reference
#include <ciso646>

Go to the source code of this file.

Macros

#define POTHOS_HELPER_DLL_IMPORT
 
#define POTHOS_HELPER_DLL_EXPORT
 
#define POTHOS_HELPER_DLL_LOCAL
 
#define POTHOS_DLL
 
#define POTHOS_API   POTHOS_HELPER_DLL_IMPORT
 
#define POTHOS_EXTERN   extern
 
#define POTHOS_LOCAL   POTHOS_HELPER_DLL_LOCAL
 
#define POTHOS_FCN_TUPLE(classPath, functionName)   #functionName, &classPath::functionName
 
#define pothos_explicit   explicit
 

Detailed Description

Common macro definitions for library API export.

Macro Definition Documentation

#define POTHOS_API   POTHOS_HELPER_DLL_IMPORT
#define POTHOS_DLL
#define pothos_explicit   explicit

Define explicit operator casts on systems that support it. For visual studios older than 2013 this is not supported. Basically we use explcit conversions for boolean operators; and without explicit, everything should work correctly, however misused code would be able to compile. Someday, remove this section and replace pothos_explicit.

#define POTHOS_EXTERN   extern
#define POTHOS_FCN_TUPLE (   classPath,
  functionName 
)    #functionName, &classPath::functionName

The function tuple emits a string name + function pointer tuple. This macro simplifies specifying a function name more than once for API calls that take a string name and function pointer.

Example: To simplify this->register("foo", &MyNamespace::MyClass::foo), this->register(POTHOS_FCN_TUPLE(MyNamespace::MyClass, foo));

Parameters
classPaththe colon separated namespace and class name
functionNamethe name of a function within the specified classPath
#define POTHOS_HELPER_DLL_EXPORT
#define POTHOS_HELPER_DLL_IMPORT
#define POTHOS_HELPER_DLL_LOCAL
#define POTHOS_LOCAL   POTHOS_HELPER_DLL_LOCAL