1 2 // (C) Copyright Edward Diener 2011-2015 3 // Use, modification and distribution are subject to the Boost Software License, 4 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 // http://www.boost.org/LICENSE_1_0.txt). 6 7 #include <boost/vmd/detail/setup.hpp> 8 #include <boost/predef.h> 9 #include <boost/detail/lightweight_test.hpp> 10 main()11int main() 12 { 13 14 #if !BOOST_PP_VARIADICS 15 16 # if defined __GCCXML__ 17 BOOST_ERROR("No variadic macro support: __GCCXML__ defined."); 18 # elif defined __CUDACC__ 19 BOOST_ERROR("No variadic macro support: __CUDACC__ defined."); 20 # elif defined __PATHSCALE__ 21 BOOST_ERROR("No variadic macro support: __PATHSCALE__ defined."); 22 # elif defined __DMC__ 23 BOOST_ERROR("No variadic macro support: __DMC__ defined."); 24 # elif defined __CODEGEARC__ 25 BOOST_ERROR("No variadic macro support: __CODEGEARC__ defined."); 26 # elif defined __BORLANDC__ 27 BOOST_ERROR("No variadic macro support: __BORLANDC__ defined."); 28 # elif defined __MWERKS__ 29 BOOST_ERROR("No variadic macro support: __MWERKS__ defined."); 30 # elif (defined __SUNPRO_CC && __SUNPRO_CC < 0x5130) 31 BOOST_ERROR("No variadic macro support: __SUNPRO_CC defined below version 12.3."); 32 # elif defined __HP_aCC && !defined __EDG__ 33 BOOST_ERROR("No variadic macro support: __HP_aCC defined and __EDG__ not defined."); 34 # elif defined __MRC__ 35 BOOST_ERROR("No variadic macro support: __MRC__ defined."); 36 # elif defined __SC__ 37 BOOST_ERROR("No variadic macro support: __SC__ defined."); 38 # elif defined __IBMCPP__ 39 BOOST_ERROR("No variadic macro support: __IBMCPP__ defined."); 40 # elif defined __PGI 41 BOOST_ERROR("No variadic macro support: __PGI defined."); 42 # /* VC++ (C/C++) */ 43 # elif defined _MSC_VER && _MSC_VER >= 1400 && (!defined __EDG__ || defined(__INTELLISENSE__)) && !defined __clang__ 44 # /* Wave (C/C++), GCC (C++) */ 45 # elif defined __WAVE__ && __WAVE_HAS_VARIADICS__ || defined __GNUC__ && __GXX_EXPERIMENTAL_CXX0X__ 46 # /* EDG-based (C/C++), GCC (C), and unknown (C/C++) */ 47 # elif !defined __cplusplus && __STDC_VERSION__ < 199901L 48 # if BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(4,3,0) 49 BOOST_ERROR("No variadic macro support for gcc >= 4.3: __STDC_VERSION__ is less than 199901L."); 50 # else 51 BOOST_ERROR("No variadic macro support: __STDC_VERSION__ is less than 199901L."); 52 # endif 53 # elif defined __cplusplus && __cplusplus < 201103L 54 # if BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(4,3,0) 55 BOOST_ERROR("No variadic macro support for g++ >= 4.3: __cplusplus is less than 201103L."); 56 # else 57 BOOST_ERROR("No variadic macro support: __cplusplus is less than 201103L."); 58 # endif 59 # endif 60 61 #endif 62 63 return boost::report_errors(); 64 65 } 66