From 5f870d780dae97327f56a7260fcb3c49d69d5254 Mon Sep 17 00:00:00 2001 From: Dave Abrahams Date: Sat, 24 Jan 2004 18:28:48 +0000 Subject: [PATCH] vc6 linker workarounds [SVN r21896] --- test/filter_iterator_test.cpp | 42 +++++++++++++++++++--------------- test/reverse_iterator_test.cpp | 4 +++- 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/test/filter_iterator_test.cpp b/test/filter_iterator_test.cpp index dbee3d7..8b4d190 100644 --- a/test/filter_iterator_test.cpp +++ b/test/filter_iterator_test.cpp @@ -68,44 +68,49 @@ int main() // Adapting new-style iterators { typedef boost::iterator_archetype< - const dummyT - , boost::iterator_archetypes::readable_iterator_t - , boost::single_pass_traversal_tag + const dummyT + , boost::iterator_archetypes::readable_iterator_t + , boost::single_pass_traversal_tag > BaseIter; typedef boost::filter_iterator Iter; boost::function_requires< boost::InputIteratorConcept >(); boost::function_requires< boost_concepts::ReadableIteratorConcept >(); boost::function_requires< boost_concepts::SinglePassIteratorConcept >(); } +#if !BOOST_WORKAROUND(BOOST_MSVC, == 1200) // Causes Internal Error in linker. { typedef boost::iterator_archetype< - dummyT - , boost::iterator_archetypes::readable_writable_iterator_t - , boost::single_pass_traversal_tag + dummyT + , boost::iterator_archetypes::readable_writable_iterator_t + , boost::single_pass_traversal_tag > BaseIter; typedef boost::filter_iterator Iter; + boost::function_requires< boost::InputIteratorConcept >(); boost::function_requires< boost::OutputIteratorConcept >(); boost::function_requires< boost_concepts::ReadableIteratorConcept >(); boost::function_requires< boost_concepts::WritableIteratorConcept >(); boost::function_requires< boost_concepts::SinglePassIteratorConcept >(); } +#endif { typedef boost::iterator_archetype< - const dummyT - , boost::iterator_archetypes::readable_iterator_t - , boost::forward_traversal_tag + const dummyT + , boost::iterator_archetypes::readable_iterator_t + , boost::forward_traversal_tag > BaseIter; typedef boost::filter_iterator Iter; boost::function_requires< boost::InputIteratorConcept >(); boost::function_requires< boost_concepts::ReadableIteratorConcept >(); boost::function_requires< boost_concepts::ForwardTraversalConcept >(); } + +#if !BOOST_WORKAROUND(BOOST_MSVC, == 1200) // Causes Internal Error in linker. { typedef boost::iterator_archetype< - dummyT - , boost::iterator_archetypes::readable_writable_iterator_t - , boost::forward_traversal_tag + dummyT + , boost::iterator_archetypes::readable_writable_iterator_t + , boost::forward_traversal_tag > BaseIter; typedef boost::filter_iterator Iter; boost::function_requires< boost_concepts::ReadableIteratorConcept >(); @@ -114,9 +119,9 @@ int main() } { typedef boost::iterator_archetype< - const dummyT - , boost::iterator_archetypes::readable_lvalue_iterator_t - , boost::forward_traversal_tag + const dummyT + , boost::iterator_archetypes::readable_lvalue_iterator_t + , boost::forward_traversal_tag > BaseIter; typedef boost::filter_iterator Iter; boost::function_requires< boost::ForwardIteratorConcept >(); @@ -125,15 +130,16 @@ int main() } { typedef boost::iterator_archetype< - dummyT - , boost::iterator_archetypes::writable_lvalue_iterator_t - , boost::forward_traversal_tag + dummyT + , boost::iterator_archetypes::writable_lvalue_iterator_t + , boost::forward_traversal_tag > BaseIter; typedef boost::filter_iterator Iter; boost::function_requires< boost::Mutable_ForwardIteratorConcept >(); boost::function_requires< boost_concepts::WritableLvalueIteratorConcept >(); boost::function_requires< boost_concepts::ForwardTraversalConcept >(); } +#endif // Run-time tests diff --git a/test/reverse_iterator_test.cpp b/test/reverse_iterator_test.cpp index 4f9d13d..5c3d50e 100644 --- a/test/reverse_iterator_test.cpp +++ b/test/reverse_iterator_test.cpp @@ -66,6 +66,7 @@ int main() boost::function_requires< boost_concepts::BidirectionalTraversalConcept >(); } #endif +#if !BOOST_WORKAROUND(BOOST_MSVC, == 1200) // Causes Internal Error in linker. { typedef boost::iterator_archetype< dummyT @@ -100,7 +101,8 @@ int main() boost::function_requires< boost_concepts::WritableLvalueIteratorConcept >(); boost::function_requires< boost_concepts::BidirectionalTraversalConcept >(); } - +#endif + // Test reverse_iterator { dummyT reversed[N];