1 # /* ************************************************************************** 2 # * * 3 # * (C) Copyright Paul Mensonides 2002-2011. * 4 # * (C) Copyright Edward Diener 2011. * 5 # * Distributed under the Boost Software License, Version 1.0. (See * 6 # * accompanying file LICENSE_1_0.txt or copy at * 7 # * http://www.boost.org/LICENSE_1_0.txt) * 8 # * * 9 # ************************************************************************** */ 10 # 11 # /* See http://www.boost.org for most recent version. */ 12 # 13 # ifndef MSGPACK_PREPROCESSOR_CONFIG_CONFIG_HPP 14 # define MSGPACK_PREPROCESSOR_CONFIG_CONFIG_HPP 15 # 16 # /* MSGPACK_PP_CONFIG_FLAGS */ 17 # 18 # define MSGPACK_PP_CONFIG_STRICT() 0x0001 19 # define MSGPACK_PP_CONFIG_IDEAL() 0x0002 20 # 21 # define MSGPACK_PP_CONFIG_MSVC() 0x0004 22 # define MSGPACK_PP_CONFIG_MWCC() 0x0008 23 # define MSGPACK_PP_CONFIG_BCC() 0x0010 24 # define MSGPACK_PP_CONFIG_EDG() 0x0020 25 # define MSGPACK_PP_CONFIG_DMC() 0x0040 26 # 27 # ifndef MSGPACK_PP_CONFIG_FLAGS 28 # if defined(__GCCXML__) 29 # define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT()) 30 # elif defined(__WAVE__) 31 # define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT()) 32 # elif defined(__MWERKS__) && __MWERKS__ >= 0x3200 33 # define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT()) 34 # elif defined(__EDG__) || defined(__EDG_VERSION__) 35 # if defined(_MSC_VER) && (defined(__INTELLISENSE__) || __EDG_VERSION__ >= 308) 36 # define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_MSVC()) 37 # else 38 # define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_EDG() | MSGPACK_PP_CONFIG_STRICT()) 39 # endif 40 # elif defined(__MWERKS__) 41 # define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_MWCC()) 42 # elif defined(__DMC__) 43 # define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_DMC()) 44 # elif defined(__BORLANDC__) && __BORLANDC__ >= 0x581 45 # define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT()) 46 # elif defined(__BORLANDC__) || defined(__IBMC__) || defined(__IBMCPP__) || defined(__SUNPRO_CC) 47 # define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_BCC()) 48 # elif defined(_MSC_VER) && !defined(__clang__) 49 # define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_MSVC()) 50 # else 51 # define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT()) 52 # endif 53 # endif 54 # 55 # /* MSGPACK_PP_CONFIG_EXTENDED_LINE_INFO */ 56 # 57 # ifndef MSGPACK_PP_CONFIG_EXTENDED_LINE_INFO 58 # define MSGPACK_PP_CONFIG_EXTENDED_LINE_INFO 0 59 # endif 60 # 61 # /* MSGPACK_PP_CONFIG_ERRORS */ 62 # 63 # ifndef MSGPACK_PP_CONFIG_ERRORS 64 # ifdef NDEBUG 65 # define MSGPACK_PP_CONFIG_ERRORS 0 66 # else 67 # define MSGPACK_PP_CONFIG_ERRORS 1 68 # endif 69 # endif 70 # 71 # /* MSGPACK_PP_VARIADICS */ 72 # 73 # define MSGPACK_PP_VARIADICS_MSVC 0 74 # if !defined MSGPACK_PP_VARIADICS 75 # /* variadic support explicitly disabled for all untested compilers */ 76 # if defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || ( defined __SUNPRO_CC && __SUNPRO_CC < 0x5120 ) || defined __HP_aCC && !defined __EDG__ || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI 77 # define MSGPACK_PP_VARIADICS 0 78 # /* VC++ (C/C++) */ 79 # elif defined _MSC_VER && _MSC_VER >= 1400 && (!defined __EDG__ || defined(__INTELLISENSE__)) && !defined __clang__ 80 # define MSGPACK_PP_VARIADICS 1 81 # undef MSGPACK_PP_VARIADICS_MSVC 82 # define MSGPACK_PP_VARIADICS_MSVC 1 83 # /* Wave (C/C++), GCC (C++) */ 84 # elif defined __WAVE__ && __WAVE_HAS_VARIADICS__ || defined __GNUC__ && defined __GXX_EXPERIMENTAL_CXX0X__ && __GXX_EXPERIMENTAL_CXX0X__ 85 # define MSGPACK_PP_VARIADICS 1 86 # /* EDG-based (C/C++), GCC (C), and unknown (C/C++) */ 87 # elif !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L 88 # define MSGPACK_PP_VARIADICS 1 89 # else 90 # define MSGPACK_PP_VARIADICS 0 91 # endif 92 # elif !MSGPACK_PP_VARIADICS + 1 < 2 93 # undef MSGPACK_PP_VARIADICS 94 # define MSGPACK_PP_VARIADICS 1 95 # if defined _MSC_VER && _MSC_VER >= 1400 && (defined(__INTELLISENSE__) || !(defined __EDG__ || defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __clang__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI)) 96 # undef MSGPACK_PP_VARIADICS_MSVC 97 # define MSGPACK_PP_VARIADICS_MSVC 1 98 # endif 99 # else 100 # undef MSGPACK_PP_VARIADICS 101 # define MSGPACK_PP_VARIADICS 0 102 # endif 103 # 104 # endif 105