diff --git a/test/iterator_adaptor_cc.cpp b/test/iterator_adaptor_cc.cpp index b02c824..cae2a5a 100644 --- a/test/iterator_adaptor_cc.cpp +++ b/test/iterator_adaptor_cc.cpp @@ -15,6 +15,15 @@ int main() boost::function_requires< boost::RandomAccessIteratorConcept >(); boost::function_requires< boost_concepts::InteroperableIteratorConcept >(); } + + // Many compilers' builtin container iterators don't interoperate well, though + // STLport fixes that problem. +#if defined(__SGI_STL_PORT) \ + || !BOOST_WORKAROUND(__GNUC__, <= 2) \ + && !(BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, <= 1)) \ + && !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) \ + && !BOOST_WORKAROUND(__LIBCOMO_VERSION__, BOOST_TESTED_AT(29)) \ + && !BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, <= 1) { typedef boost::reverse_iterator::iterator> rev_iter; typedef boost::reverse_iterator::const_iterator> c_rev_iter; @@ -24,6 +33,7 @@ int main() boost::function_requires< boost::BidirectionalIteratorConcept >(); boost::function_requires< boost_concepts::InteroperableIteratorConcept >(); } - +#endif + return boost::exit_success; }