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) 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(BOOST_BORLANDC, BOOST_TESTED_AT(0x564)) 27 # define BOOST_RANGE_DEDUCED_TYPENAME typename 28 #else 29 #define BOOST_RANGE_DEDUCED_TYPENAME BOOST_DEDUCED_TYPENAME 30 #endif 31 32 #ifdef BOOST_RANGE_NO_ARRAY_SUPPORT 33 #error "macro already defined!" 34 #endif 35 36 #if BOOST_WORKAROUND( __MWERKS__, <= 0x3003 ) 37 #define BOOST_RANGE_NO_ARRAY_SUPPORT 1 38 #endif 39 40 #ifdef BOOST_RANGE_NO_ARRAY_SUPPORT 41 #define BOOST_RANGE_ARRAY_REF() (boost_range_array) 42 #define BOOST_RANGE_NO_STATIC_ASSERT 43 #else 44 #define BOOST_RANGE_ARRAY_REF() (&boost_range_array) 45 #endif 46 47 #if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7))) 48 # define BOOST_RANGE_UNUSED __attribute__((unused)) 49 #else 50 # define BOOST_RANGE_UNUSED 51 #endif 52 53 54 55 #endif 56 57