IPSDK
4_1_0_2
IPSDK : Image Processing Software Development Kit
IPSDK_Nightly
include
public
IPSDKUtil
Tools
BaseMacros.h
Go to the documentation of this file.
1
// BaseMacros.h:
3
// -------------
4
//
14
15
#ifndef __IPSDKUTIL_BASEMACROS_H__
16
#define __IPSDKUTIL_BASEMACROS_H__
17
18
#include <boost/preprocessor/cat.hpp>
19
#include <boost/preprocessor/stringize.hpp>
20
#include <boost/preprocessor/seq/for_each.hpp>
21
24
28
#define IPSDK_LIB_API(libraryName) \
29
BOOST_PP_CAT(IPSDK_LIB_API_, libraryName)()
30
34
#define IPSDK_LIB_NAMESPACE(libraryName) \
35
BOOST_PP_CAT(IPSDK_LIB_NAMESPACE_, libraryName)()
36
40
#define IPSDK_LIB_EXCEPTION(libraryName) \
41
IPSDK_LIB_NAMESPACE(libraryName) :: \
42
BOOST_PP_CAT(libraryName, Exception)
43
47
#define IPSDK_LIB_LOGGER_NAME(libraryName) \
48
IPSDK_LIB_NAMESPACE(libraryName) :: \
49
BOOST_PP_CAT(get, BOOST_PP_CAT(libraryName, LoggerName))()
50
54
#define IPSDK_LIB_LOGGER(libraryName) \
55
IPSDK_LIB_NAMESPACE(libraryName) :: \
56
BOOST_PP_CAT(get, BOOST_PP_CAT(libraryName, Logger))()
57
61
#define IPSDK_LIB_LOG_MSG_MANAGER(libraryName) \
62
IPSDK_LIB_NAMESPACE(libraryName) :: \
63
BOOST_PP_CAT(get, BOOST_PP_CAT(libraryName, LogMessageManager))()
64
67
70
#define IPSDK_START_NAMESPACE_MACRO(r, data, namespaceName) namespace namespaceName {
71
74
#define IPSDK_START_NAMESPACE(namespaceSeq) \
75
BOOST_PP_SEQ_FOR_EACH_R(200, IPSDK_START_NAMESPACE_MACRO, _, namespaceSeq)
76
79
#define IPSDK_END_NAMESPACE_MACRO(r, data, namespaceName) }
80
83
#define IPSDK_END_NAMESPACE(namespaceSeq) \
84
BOOST_PP_SEQ_FOR_EACH_R(200, IPSDK_END_NAMESPACE_MACRO, _, namespaceSeq)
85
88
#define IPSDK_NAMESPACE_NAME_MACRO(r, data, namespaceName) namespaceName::
89
92
#define IPSDK_NAMESPACE_NAME(namespaceSeq) \
93
BOOST_PP_SEQ_FOR_EACH_R(200, IPSDK_NAMESPACE_NAME_MACRO, _, namespaceSeq)
94
97
101
#define IPSDK_FULL_NAMESPACE_STR_MACRO(r, _, namespaceName) \
102
BOOST_PP_STRINGIZE(namespaceName) "::"
103
106
#define IPSDK_FULL_NAMESPACE_STR(namespaceSeq) \
107
BOOST_PP_SEQ_FOR_EACH_R(200, IPSDK_FULL_NAMESPACE_STR_MACRO, _, namespaceSeq)
108
112
#define IPSDK_FULL_CLASSNAME_STR(namespaceSeq, className) \
113
IPSDK_FULL_NAMESPACE_STR(namespaceSeq) \
114
BOOST_PP_STRINGIZE(className)
115
118
119
#endif // __IPSDKUTIL_BASEMACROS_H__
Generated on Tue Apr 15 2025 16:20:49 for IPSDK by
1.8.14