From 21c1285cd0297ca1092141599f64f76c69c20a82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorsten=20J=C3=B8rgen=20Ottosen?= Date: Mon, 12 Sep 2005 20:08:14 +0000 Subject: [PATCH] *** empty log message *** [SVN r30927] --- doc/example.cpp | 18 +++++++++++++++++- include/boost/range/size_type.hpp | 5 +++-- test/extension_mechanism.cpp | 2 ++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/doc/example.cpp b/doc/example.cpp index af3e96b..7b5197f 100644 --- a/doc/example.cpp +++ b/doc/example.cpp @@ -22,11 +22,13 @@ namespace boost // Specialize metafunctions. We must include the range.hpp header. // We must open the 'boost' namespace. // + /* template< class T > struct range_value< Foo::Pair > { typedef typename std::iterator_traits::value_type type; }; + */ template< class T > struct range_iterator< Foo::Pair > @@ -45,11 +47,13 @@ namespace boost typedef T type; }; + /* template< class T > struct range_difference< Foo::Pair > { typedef typename std::iterator_traits::difference_type type; }; + */ template< class T > struct range_size< Foo::Pair > @@ -108,7 +112,8 @@ int main() { typedef std::vector::iterator iter; std::vector vec; - Foo::Pair pair = { vec.begin(), vec.end() }; + vec.push_back( 42 ); + Foo::Pair pair = { vec.begin(), vec.end() }; const Foo::Pair& cpair = pair; // // Notice that we call 'begin' etc with qualification. @@ -122,4 +127,15 @@ int main() boost::range_const_reverse_iterator< Foo::Pair >::type ri = boost::rbegin( cpair ), re = boost::rend( cpair ); + + // + // Test metafunctions + // + + boost::range_value< Foo::Pair >::type + v = *boost::begin(pair); + + boost::range_difference< Foo::Pair >::type + d = boost::end(pair) - boost::begin(pair); } + diff --git a/include/boost/range/size_type.hpp b/include/boost/range/size_type.hpp index 9388bd4..0c15f29 100755 --- a/include/boost/range/size_type.hpp +++ b/include/boost/range/size_type.hpp @@ -16,6 +16,7 @@ #endif #include +/* #include namespace boost @@ -62,8 +63,8 @@ namespace boost type; }; } +*/ -/* #ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION #include #else @@ -170,6 +171,6 @@ namespace boost } // namespace boost #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -*/ + #endif diff --git a/test/extension_mechanism.cpp b/test/extension_mechanism.cpp index 273abb2..8692d9d 100755 --- a/test/extension_mechanism.cpp +++ b/test/extension_mechanism.cpp @@ -62,10 +62,12 @@ namespace Foo return x.vec.begin(); } + inline X::const_iterator boost_range_begin( const X& x ) { return x.vec.begin(); } + inline X::iterator boost_range_end( X& x ) {