1 // Boost.Range library 2 // 3 // Copyright Thorsten Ottosen 2003-2004. Use, modification and 4 // distribution is subject to the Boost Software License, Version 5 // 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 // http://www.boost.org/LICENSE_1_0.txt) 7 // 8 // For more information, see http://www.boost.org/libs/range/ 9 // 10 11 #ifndef BOOST_RANGE_CONFIG_HPP 12 #define BOOST_RANGE_CONFIG_HPP 13 14 #include <boost/detail/workaround.hpp> 15 16 #if defined(_MSC_VER) && (_MSC_VER >= 1200) 17 # pragma once 18 #endif 19 20 #include <boost/config.hpp> 21 22 #ifdef BOOST_RANGE_DEDUCED_TYPENAME 23 #error "macro already defined!" 24 #endif 25 26 #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) 27 # define BOOST_RANGE_DEDUCED_TYPENAME typename 28 #else 29 # if BOOST_WORKAROUND(BOOST_MSVC, == 1300) && !defined(_MSC_EXTENSIONS) 30 # define BOOST_RANGE_DEDUCED_TYPENAME typename 31 # else 32 # define BOOST_RANGE_DEDUCED_TYPENAME BOOST_DEDUCED_TYPENAME 33 # endif 34 #endif 35 36 #ifdef BOOST_RANGE_NO_ARRAY_SUPPORT 37 #error "macro already defined!" 38 #endif 39 40 #if BOOST_WORKAROUND( BOOST_MSVC, < 1300 ) || BOOST_WORKAROUND( __MWERKS__, <= 0x3003 ) 41 #define BOOST_RANGE_NO_ARRAY_SUPPORT 1 42 #endif 43 44 #ifdef BOOST_RANGE_NO_ARRAY_SUPPORT 45 #define BOOST_RANGE_ARRAY_REF() (boost_range_array) 46 #define BOOST_RANGE_NO_STATIC_ASSERT 47 #else 48 #define BOOST_RANGE_ARRAY_REF() (&boost_range_array) 49 #endif 50 51 52 53 #endif 54 55