diff --git a/test/indirect_iterator_test.cpp b/test/indirect_iterator_test.cpp index 56db69b..781c226 100644 --- a/test/indirect_iterator_test.cpp +++ b/test/indirect_iterator_test.cpp @@ -175,7 +175,7 @@ main() > c_iter_t; # ifndef NO_MUTABLE_CONST_RA_ITERATOR_INTEROPERABILITY - boost::function_requires< boost_concepts::InteroperableConcept >(); + boost::function_requires< boost_concepts::InteroperableIteratorConcept >(); # endif } diff --git a/test/iterator_adaptor_cc.cpp b/test/iterator_adaptor_cc.cpp index ba7e79b..cae2a5a 100644 --- a/test/iterator_adaptor_cc.cpp +++ b/test/iterator_adaptor_cc.cpp @@ -13,8 +13,17 @@ int main() boost::function_requires< boost_concepts::WritableLvalueIteratorConcept >(); boost::function_requires< boost_concepts::RandomAccessTraversalConcept >(); boost::function_requires< boost::RandomAccessIteratorConcept >(); - boost::function_requires< boost_concepts::InteroperableConcept >(); + 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; @@ -22,8 +31,9 @@ int main() boost::function_requires< boost_concepts::ReadableLvalueIteratorConcept >(); boost::function_requires< boost_concepts::BidirectionalTraversalConcept >(); boost::function_requires< boost::BidirectionalIteratorConcept >(); - boost::function_requires< boost_concepts::InteroperableConcept >(); + boost::function_requires< boost_concepts::InteroperableIteratorConcept >(); } - +#endif + return boost::exit_success; } diff --git a/test/transform_iterator_test.cpp b/test/transform_iterator_test.cpp index 2c9139a..6c02a26 100644 --- a/test/transform_iterator_test.cpp +++ b/test/transform_iterator_test.cpp @@ -115,7 +115,7 @@ main() typedef boost::transform_iterator iter_t; typedef boost::transform_iterator c_iter_t; - boost::function_requires< boost_concepts::InteroperableConcept >(); + boost::function_requires< boost_concepts::InteroperableIteratorConcept >(); } // Test transform_iterator