1 #ifndef OPENPOSE_CORE_MACROS_HPP
2 #define OPENPOSE_CORE_MACROS_HPP
19 #elif defined OP_EXPORTS
20 #define OP_API __declspec(dllexport)
22 #define OP_API __declspec(dllimport)
27 #pragma warning ( disable : 4251 ) // XXX needs to have dll-interface to be used by clients of class YYY
28 #pragma warning( disable: 4275 ) // non dll-interface structXXX used as base
31 #define UNUSED(unusedVariable) (void)(unusedVariable)
33 #define DELETE_COPY(className) \
34 className(const className&) = delete; \
35 className& operator=(const className&) = delete
38 #define COMPILE_TEMPLATE_BASIC_TYPES_CLASS(className) COMPILE_TEMPLATE_BASIC_TYPES(className, class)
39 #define COMPILE_TEMPLATE_BASIC_TYPES_STRUCT(className) COMPILE_TEMPLATE_BASIC_TYPES(className, struct)
40 #define COMPILE_TEMPLATE_BASIC_TYPES(className, classType) \
41 template classType OP_API className<char>; \
42 template classType OP_API className<signed char>; \
43 template classType OP_API className<short>; \
44 template classType OP_API className<int>; \
45 template classType OP_API className<long>; \
46 template classType OP_API className<long long>; \
47 template classType OP_API className<unsigned char>; \
48 template classType OP_API className<unsigned short>; \
49 template classType OP_API className<unsigned int>; \
50 template classType OP_API className<unsigned long>; \
51 template classType OP_API className<unsigned long long>; \
52 template classType OP_API className<float>; \
53 template classType OP_API className<double>; \
54 template classType OP_API className<long double>
60 #define OVERLOAD_C_OUT(className) \
61 template<typename T> std::ostream &operator<<(std::ostream& ostream, const op::className<T>& obj) \
63 ostream << obj.toString(); \
68 #define COMPILE_TEMPLATE_FLOATING_TYPES_CLASS(className) COMPILE_TEMPLATE_FLOATING_TYPES(className, class)
69 #define COMPILE_TEMPLATE_FLOATING_TYPES_STRUCT(className) COMPILE_TEMPLATE_FLOATING_TYPES(className, struct)
70 #define COMPILE_TEMPLATE_FLOATING_TYPES(className, classType) \
71 char gInstantiationGuard##className; \
72 template classType OP_API className<float>; \
73 template classType OP_API className<double>
80 template <
typename T>
class Blob;
87 #endif // OPENPOSE_CORE_MACROS_HPP
const std::string OPEN_POSE_VERSION_STRING
Definition: macros.hpp:13
const std::string OPEN_POSE_NAME_AND_VERSION
Definition: macros.hpp:14
Definition: macros.hpp:84
const std::string OPEN_POSE_NAME_STRING
Definition: macros.hpp:12
Definition: macros.hpp:80
std::string string
Definition: cl2.hpp:574