19 #ifdef BOOST_ITERATOR_CONFIG_DEF
20 # error you have nested config_def #inclusion.
22 # define BOOST_ITERATOR_CONFIG_DEF
29 #if 1 || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
30 || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x531))
45 # define BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY 1
49 #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x5A0)) \
50 || (BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, <= 700) && defined(_MSC_VER)) \
51 || BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042)) \
52 || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
54 # define BOOST_NO_LVALUE_RETURN_DETECTION
59 typedef char (&no)[3];
62 no foo(
T const&, ...);
74 struct lvalue_deref_helper
77 enum { value = (
sizeof(foo(*x,0)) == 1) };
80 int z2[(lvalue_deref_helper<v*>::value == 1) ? 1 : -1];
81 int z[(lvalue_deref_helper<value_iterator>::value) == 1 ? -1 : 1 ];
86 #if BOOST_WORKAROUND(__MWERKS__, <=0x2407)
87 # define BOOST_NO_IS_CONVERTIBLE // "is_convertible doesn't work for simple types"
90 #if BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4) && !defined(__EDG_VERSION__) \
91 || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
92 # define BOOST_NO_IS_CONVERTIBLE_TEMPLATE // The following program fails to compile:
102 foo(foo<U>
const& other) : p(other.p) { }
113 #if !defined(BOOST_MSVC) && (defined(BOOST_NO_SFINAE) || defined(BOOST_NO_IS_CONVERTIBLE) || defined(BOOST_NO_IS_CONVERTIBLE_TEMPLATE))
114 # define BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
117 # if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
125 # define BOOST_NO_ONE_WAY_ITERATOR_INTEROP