1 #ifndef OPENPOSE_CORE_MACROS_HPP
2 #define OPENPOSE_CORE_MACROS_HPP
10 #elif defined OP_EXPORTS
11 #define OP_API __declspec(dllexport)
13 #define OP_API __declspec(dllimport)
18 #pragma warning ( disable : 4251 ) // XXX needs to have dll-interface to be used by clients of class YYY
19 #pragma warning( disable: 4275 ) // non dll-interface structXXX used as base
22 #define UNUSED(unusedVariable) (void)(unusedVariable)
24 #define DELETE_COPY(className) \
25 className(const className&) = delete; \
26 className& operator=(const className&) = delete
29 #define COMPILE_TEMPLATE_BASIC_TYPES_CLASS(className) COMPILE_TEMPLATE_BASIC_TYPES(className, class)
30 #define COMPILE_TEMPLATE_BASIC_TYPES_STRUCT(className) COMPILE_TEMPLATE_BASIC_TYPES(className, struct)
31 #define COMPILE_TEMPLATE_BASIC_TYPES(className, classType) \
32 template classType OP_API className<char>; \
33 template classType OP_API className<signed char>; \
34 template classType OP_API className<short>; \
35 template classType OP_API className<int>; \
36 template classType OP_API className<long>; \
37 template classType OP_API className<long long>; \
38 template classType OP_API className<unsigned char>; \
39 template classType OP_API className<unsigned short>; \
40 template classType OP_API className<unsigned int>; \
41 template classType OP_API className<unsigned long>; \
42 template classType OP_API className<unsigned long long>; \
43 template classType OP_API className<float>; \
44 template classType OP_API className<double>; \
45 template classType OP_API className<long double>
51 #define OVERLOAD_C_OUT(className) \
52 template<typename T> std::ostream &operator<<(std::ostream& ostream, const op::className<T>& obj) \
54 ostream << obj.toString(); \
59 #define COMPILE_TEMPLATE_FLOATING_TYPES_CLASS(className) COMPILE_TEMPLATE_FLOATING_TYPES(className, class)
60 #define COMPILE_TEMPLATE_FLOATING_TYPES_STRUCT(className) COMPILE_TEMPLATE_FLOATING_TYPES(className, struct)
61 #define COMPILE_TEMPLATE_FLOATING_TYPES(className, classType) \
62 char gInstantiationGuard##className; \
63 template classType OP_API className<float>; \
64 template classType OP_API className<double>
71 template <
typename T>
class Blob;
78 #endif // OPENPOSE_CORE_MACROS_HPP
Definition: macros.hpp:75
Definition: macros.hpp:71