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)
8 // For more information, see http://www.boost.org/libs/range/
11 #ifndef BOOST_RANGE_CONFIG_HPP
12 #define BOOST_RANGE_CONFIG_HPP
14 #include <boost/detail/workaround.hpp>
20 #include <boost/config.hpp>
22 #ifdef BOOST_RANGE_DEDUCED_TYPENAME
23 #error "macro already defined!"
26 #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
27 # define BOOST_RANGE_DEDUCED_TYPENAME typename
29 #define BOOST_RANGE_DEDUCED_TYPENAME BOOST_DEDUCED_TYPENAME
32 #ifdef BOOST_RANGE_NO_ARRAY_SUPPORT
33 #error "macro already defined!"
36 #if BOOST_WORKAROUND( __MWERKS__, <= 0x3003 )
37 #define BOOST_RANGE_NO_ARRAY_SUPPORT 1
40 #ifdef BOOST_RANGE_NO_ARRAY_SUPPORT
41 #define BOOST_RANGE_ARRAY_REF() (boost_range_array)
42 #define BOOST_RANGE_NO_STATIC_ASSERT
44 #define BOOST_RANGE_ARRAY_REF() (&boost_range_array)
47 #if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)))
48 # define BOOST_RANGE_UNUSED __attribute__((unused))
50 # define BOOST_RANGE_UNUSED