forked from boostorg/range
*** empty log message ***
[SVN r25152]
This commit is contained in:
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
12
test/Jamfile
12
test/Jamfile
@ -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
69
test/const_ranges.cpp
Executable 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Reference in New Issue
Block a user