*** empty log message ***

[SVN r25152]
This commit is contained in:
Thorsten Jørgen Ottosen
2004-09-16 18:21:42 +00:00
parent 84a9126cc9
commit c7047652d8
6 changed files with 110 additions and 6 deletions

View File

@ -123,4 +123,14 @@ inline BOOST_DEDUCED_TYPENAME range_const_iterator<T>::type begin( const T& r )
#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING #endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
namespace boost
{
template< class T >
inline BOOST_DEDUCED_TYPENAME range_const_iterator<T>::type
const_begin( const T& r )
{
return begin( r );
}
}
#endif #endif

View File

@ -143,4 +143,15 @@ inline range_const_iterator<const wchar_t*>::type end<const wchar_t*>( const wch
#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING #endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
namespace boost
{
template< class T >
inline BOOST_DEDUCED_TYPENAME range_const_iterator<T>::type
const_end( const T& r )
{
return end( r );
}
}
#endif #endif

View File

@ -54,6 +54,13 @@ rbegin( const C& c )
#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING #endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
template< class T >
inline BOOST_DEDUCED_TYPENAME range_const_reverse_iterator<T>::type
const_rbegin( const T& r )
{
return rbegin( r );
} }
} // namespace 'boost'
#endif #endif

View File

@ -54,6 +54,13 @@ rend( const C& c )
#endif #endif
template< class T >
inline BOOST_DEDUCED_TYPENAME range_const_reverse_iterator<T>::type
const_rend( const T& r )
{
return rend( r );
}
} // namespace 'boost' } // namespace 'boost'
#endif #endif

View File

@ -72,12 +72,12 @@ test-suite range
: :
: reversible_range_test : reversible_range_test
] ]
# [ run [ run
# compat1.cpp const_ranges.cpp
# : : : :
# : :
# : compat1_test : const_ranges
# ] ]
# [ run # [ run
# compat3.cpp # compat3.cpp
# : : # : :

69
test/const_ranges.cpp Executable file
View File

@ -0,0 +1,69 @@
// Boost.Range library
//
// Copyright Thorsten Ottosen 2003-2004. Use, modification and
// distribution is subject to the Boost Software License, Version
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
//
// For more information, see http://www.boost.org/libs/range/
//
#include <boost/detail/workaround.hpp>
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
# pragma warn -8091 // supress warning in Boost.Test
# pragma warn -8057 // unused argument argc/argv in Boost.Test
#endif
#include <boost/range.hpp>
#include <string>
// This should be included before "using namespace boost",
// otherwise gcc headers will be confused with boost::iterator
// namespace.
#include <boost/test/included/unit_test_framework.hpp>
using namespace boost;
using namespace std;
template< class T >
const T& as_const( const T& r )
{
return r;
}
void check_const_ranges()
{
std::string foo( "foo" );
const std::string bar( "bar" );
BOOST_CHECK( const_begin( foo ) == begin( as_const( foo ) ) );
BOOST_CHECK( const_end( foo ) == end( as_const( foo ) ) );
BOOST_CHECK( const_rbegin( foo ) == rbegin( as_const( foo ) ) );
BOOST_CHECK( const_rend( foo ) == rend( as_const( foo ) ) );
BOOST_CHECK( const_begin( bar ) == begin( as_const( bar ) ) );
BOOST_CHECK( const_end( bar ) == end( as_const( bar ) ) );
BOOST_CHECK( const_rbegin( bar ) == rbegin( as_const( bar ) ) );
BOOST_CHECK( const_rend( bar ) == rend( as_const( bar ) ) );
}
using boost::unit_test_framework::test_suite;
test_suite* init_unit_test_suite( int argc, char* argv[] )
{
test_suite* test = BOOST_TEST_SUITE( "Range Test Suite" );
test->add( BOOST_TEST_CASE( &check_const_ranges ) );
return test;
}