1 #ifndef OPENPOSE_CORE_MACROS_HPP
2 #define OPENPOSE_CORE_MACROS_HPP
16 #elif defined OP_EXPORTS
17 #define OP_API __declspec(dllexport)
19 #define OP_API __declspec(dllimport)
24 #pragma warning ( disable : 4251 ) // XXX needs to have dll-interface to be used by clients of class YYY
25 #pragma warning( disable: 4275 ) // non dll-interface structXXX used as base
28 #define UNUSED(unusedVariable) (void)(unusedVariable)
30 #define DELETE_COPY(className) \
31 className(const className&) = delete; \
32 className& operator=(const className&) = delete
35 #define COMPILE_TEMPLATE_BASIC_TYPES_CLASS(className) COMPILE_TEMPLATE_BASIC_TYPES(className, class)
36 #define COMPILE_TEMPLATE_BASIC_TYPES_STRUCT(className) COMPILE_TEMPLATE_BASIC_TYPES(className, struct)
37 #define COMPILE_TEMPLATE_BASIC_TYPES(className, classType) \
38 template classType OP_API className<char>; \
39 template classType OP_API className<signed char>; \
40 template classType OP_API className<short>; \
41 template classType OP_API className<int>; \
42 template classType OP_API className<long>; \
43 template classType OP_API className<long long>; \
44 template classType OP_API className<unsigned char>; \
45 template classType OP_API className<unsigned short>; \
46 template classType OP_API className<unsigned int>; \
47 template classType OP_API className<unsigned long>; \
48 template classType OP_API className<unsigned long long>; \
49 template classType OP_API className<float>; \
50 template classType OP_API className<double>; \
51 template classType OP_API className<long double>
57 #define OVERLOAD_C_OUT(className) \
58 template<typename T> std::ostream &operator<<(std::ostream& ostream, const op::className<T>& obj) \
60 ostream << obj.toString(); \
65 #define COMPILE_TEMPLATE_FLOATING_TYPES_CLASS(className) COMPILE_TEMPLATE_FLOATING_TYPES(className, class)
66 #define COMPILE_TEMPLATE_FLOATING_TYPES_STRUCT(className) COMPILE_TEMPLATE_FLOATING_TYPES(className, struct)
67 #define COMPILE_TEMPLATE_FLOATING_TYPES(className, classType) \
68 char gInstantiationGuard##className; \
69 template classType OP_API className<float>; \
70 template classType OP_API className<double>
77 template <
typename T>
class Blob;
84 #endif // OPENPOSE_CORE_MACROS_HPP
const std::string OPEN_POSE_VERSION_STRING
Definition: macros.hpp:11
const std::string OPEN_POSE_NAME_AND_VERSION
Definition: macros.hpp:12
Definition: macros.hpp:81
const std::string OPEN_POSE_NAME_STRING
Definition: macros.hpp:10
Definition: macros.hpp:77
std::string string
Definition: cl2.hpp:574