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 BOOST_PREPROCESSOR_CONFIG_CONFIG_HPP 14 # define BOOST_PREPROCESSOR_CONFIG_CONFIG_HPP 15 # 16 # /* BOOST_PP_CONFIG_FLAGS */ 17 # 18 # define BOOST_PP_CONFIG_STRICT() 0x0001 19 # define BOOST_PP_CONFIG_IDEAL() 0x0002 20 # 21 # define BOOST_PP_CONFIG_MSVC() 0x0004 22 # define BOOST_PP_CONFIG_MWCC() 0x0008 23 # define BOOST_PP_CONFIG_BCC() 0x0010 24 # define BOOST_PP_CONFIG_EDG() 0x0020 25 # define BOOST_PP_CONFIG_DMC() 0x0040 26 # 27 # ifndef BOOST_PP_CONFIG_FLAGS 28 # if defined(__GCCXML__) || defined(__WAVE__) || defined(__MWERKS__) && __MWERKS__ >= 0x3200 29 # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) 30 # elif defined(__EDG__) || defined(__EDG_VERSION__) 31 # if defined(_MSC_VER) && !defined(__clang__) && (defined(__INTELLISENSE__) || __EDG_VERSION__ >= 308) 32 # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MSVC()) 33 # else 34 # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_EDG() | BOOST_PP_CONFIG_STRICT()) 35 # endif 36 # elif defined(_MSC_VER) && defined(__clang__) 37 # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) 38 # elif defined(__MWERKS__) 39 # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MWCC()) 40 # elif defined(__DMC__) 41 # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_DMC()) 42 # elif defined(__BORLANDC__) && __BORLANDC__ >= 0x581 43 # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) 44 # elif defined(__BORLANDC__) || defined(__IBMC__) || defined(__IBMCPP__) || defined(__SUNPRO_CC) 45 # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_BCC()) 46 # elif defined(_MSC_VER) 47 # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MSVC()) 48 # else 49 # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) 50 # endif 51 # endif 52 # 53 # /* BOOST_PP_CONFIG_EXTENDED_LINE_INFO */ 54 # 55 # ifndef BOOST_PP_CONFIG_EXTENDED_LINE_INFO 56 # define BOOST_PP_CONFIG_EXTENDED_LINE_INFO 0 57 # endif 58 # 59 # /* BOOST_PP_CONFIG_ERRORS */ 60 # 61 # ifndef BOOST_PP_CONFIG_ERRORS 62 # ifdef NDEBUG 63 # define BOOST_PP_CONFIG_ERRORS 0 64 # else 65 # define BOOST_PP_CONFIG_ERRORS 1 66 # endif 67 # endif 68 # 69 # /* BOOST_PP_VARIADICS */ 70 # 71 # define BOOST_PP_VARIADICS_MSVC 0 72 # if !defined BOOST_PP_VARIADICS 73 # /* variadic support explicitly disabled for all untested compilers */ 74 # 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 75 # define BOOST_PP_VARIADICS 0 76 # elif defined(_MSC_VER) && defined(__clang__) 77 # define BOOST_PP_VARIADICS 1 78 # /* VC++ (C/C++) and Intel C++ Compiler >= 17.0 with MSVC */ 79 # elif defined _MSC_VER && _MSC_VER >= 1400 && (!defined __EDG__ || defined(__INTELLISENSE__) || defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 1700) 80 # define BOOST_PP_VARIADICS 1 81 # undef BOOST_PP_VARIADICS_MSVC 82 # define BOOST_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 BOOST_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 BOOST_PP_VARIADICS 1 89 # else 90 # define BOOST_PP_VARIADICS 0 91 # endif 92 # elif !BOOST_PP_VARIADICS + 1 < 2 93 # undef BOOST_PP_VARIADICS 94 # define BOOST_PP_VARIADICS 1 95 # if defined _MSC_VER && _MSC_VER >= 1400 && !defined(__clang__) && (defined(__INTELLISENSE__) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 1700) || !(defined __EDG__ || defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI)) 96 # undef BOOST_PP_VARIADICS_MSVC 97 # define BOOST_PP_VARIADICS_MSVC 1 98 # endif 99 # else 100 # undef BOOST_PP_VARIADICS 101 # define BOOST_PP_VARIADICS 0 102 # endif 103 # 104 # endif 105