Chris@16: # /* ************************************************************************** Chris@16: # * * Chris@16: # * (C) Copyright Paul Mensonides 2002-2011. * Chris@16: # * (C) Copyright Edward Diener 2011. * Chris@16: # * Distributed under the Boost Software License, Version 1.0. (See * Chris@16: # * accompanying file LICENSE_1_0.txt or copy at * Chris@16: # * http://www.boost.org/LICENSE_1_0.txt) * Chris@16: # * * Chris@16: # ************************************************************************** */ Chris@16: # Chris@16: # /* See http://www.boost.org for most recent version. */ Chris@16: # Chris@16: # ifndef BOOST_PREPROCESSOR_CONFIG_CONFIG_HPP Chris@16: # define BOOST_PREPROCESSOR_CONFIG_CONFIG_HPP Chris@16: # Chris@16: # /* BOOST_PP_CONFIG_FLAGS */ Chris@16: # Chris@16: # define BOOST_PP_CONFIG_STRICT() 0x0001 Chris@16: # define BOOST_PP_CONFIG_IDEAL() 0x0002 Chris@16: # Chris@16: # define BOOST_PP_CONFIG_MSVC() 0x0004 Chris@16: # define BOOST_PP_CONFIG_MWCC() 0x0008 Chris@16: # define BOOST_PP_CONFIG_BCC() 0x0010 Chris@16: # define BOOST_PP_CONFIG_EDG() 0x0020 Chris@16: # define BOOST_PP_CONFIG_DMC() 0x0040 Chris@16: # Chris@16: # ifndef BOOST_PP_CONFIG_FLAGS Chris@16: # if defined(__GCCXML__) Chris@16: # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) Chris@16: # elif defined(__WAVE__) Chris@16: # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) Chris@16: # elif defined(__MWERKS__) && __MWERKS__ >= 0x3200 Chris@16: # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) Chris@16: # elif defined(__EDG__) || defined(__EDG_VERSION__) Chris@101: # if defined(_MSC_VER) && (defined(__INTELLISENSE__) || __EDG_VERSION__ >= 308) Chris@16: # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MSVC()) Chris@16: # else Chris@16: # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_EDG() | BOOST_PP_CONFIG_STRICT()) Chris@16: # endif Chris@16: # elif defined(__MWERKS__) Chris@16: # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MWCC()) Chris@16: # elif defined(__DMC__) Chris@16: # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_DMC()) Chris@16: # elif defined(__BORLANDC__) && __BORLANDC__ >= 0x581 Chris@16: # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) Chris@16: # elif defined(__BORLANDC__) || defined(__IBMC__) || defined(__IBMCPP__) || defined(__SUNPRO_CC) Chris@16: # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_BCC()) Chris@101: # elif defined(_MSC_VER) && !defined(__clang__) Chris@16: # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MSVC()) Chris@16: # else Chris@16: # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) Chris@16: # endif Chris@16: # endif Chris@16: # Chris@16: # /* BOOST_PP_CONFIG_EXTENDED_LINE_INFO */ Chris@16: # Chris@16: # ifndef BOOST_PP_CONFIG_EXTENDED_LINE_INFO Chris@16: # define BOOST_PP_CONFIG_EXTENDED_LINE_INFO 0 Chris@16: # endif Chris@16: # Chris@16: # /* BOOST_PP_CONFIG_ERRORS */ Chris@16: # Chris@16: # ifndef BOOST_PP_CONFIG_ERRORS Chris@16: # ifdef NDEBUG Chris@16: # define BOOST_PP_CONFIG_ERRORS 0 Chris@16: # else Chris@16: # define BOOST_PP_CONFIG_ERRORS 1 Chris@16: # endif Chris@16: # endif Chris@16: # Chris@16: # /* BOOST_PP_VARIADICS */ Chris@16: # Chris@16: # if !defined BOOST_PP_VARIADICS Chris@16: # /* variadic support explicitly disabled for all untested compilers */ Chris@101: # if defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC && !defined __EDG__ || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI Chris@16: # define BOOST_PP_VARIADICS 0 Chris@16: # /* VC++ (C/C++) */ Chris@101: # elif defined _MSC_VER && _MSC_VER >= 1400 && (!defined __EDG__ || defined(__INTELLISENSE__)) && !defined __clang__ Chris@101: # define BOOST_PP_VARIADICS 1 Chris@101: # define BOOST_PP_VARIADICS_MSVC 1 Chris@16: # /* Wave (C/C++), GCC (C++) */ Chris@16: # elif defined __WAVE__ && __WAVE_HAS_VARIADICS__ || defined __GNUC__ && __GXX_EXPERIMENTAL_CXX0X__ Chris@16: # define BOOST_PP_VARIADICS 1 Chris@16: # /* EDG-based (C/C++), GCC (C), and unknown (C/C++) */ Chris@16: # elif !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L Chris@16: # define BOOST_PP_VARIADICS 1 Chris@16: # else Chris@16: # define BOOST_PP_VARIADICS 0 Chris@16: # endif Chris@16: # elif !BOOST_PP_VARIADICS + 1 < 2 Chris@16: # undef BOOST_PP_VARIADICS Chris@16: # define BOOST_PP_VARIADICS 1 Chris@101: # 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)) Chris@16: # define BOOST_PP_VARIADICS_MSVC 1 Chris@16: # endif Chris@16: # else Chris@16: # undef BOOST_PP_VARIADICS Chris@16: # define BOOST_PP_VARIADICS 0 Chris@16: # endif Chris@16: # Chris@16: # endif