Compare commits

..

56 Commits

Author SHA1 Message Date
a4c9c3eb65 Branch at revision 46530
[SVN r46531]
2008-06-19 18:57:10 +00:00
15a697f86b new jamfile to see warnings better
[SVN r46348]
2008-06-12 12:00:57 +00:00
dbef3564c4 fixes from Trac
[SVN r46346]
2008-06-12 10:54:44 +00:00
b948d9af17 fixes for problems from Trac
[SVN r46345]
2008-06-12 10:00:54 +00:00
95d424012b Quote href values - our tools don't support unquoted values.
[SVN r45283]
2008-05-11 13:49:20 +00:00
36a99eb0a0 test of updated as_literal()
[SVN r45124]
2008-05-05 06:42:30 +00:00
f117011b60 fix for as_literal()
[SVN r45123]
2008-05-05 06:41:54 +00:00
7c0d73b8cf fixed problem with operator()() when the value_type was abstract.
[SVN r43322]
2008-02-19 15:10:05 +00:00
405ebd8cca include config.hpp and workaround.hpp before uses of BOOST_WORKAROUND and BOOST_MSVC
[SVN r43220]
2008-02-11 03:48:41 +00:00
94b45ef51e missing ) fixed
[SVN r43175]
2008-02-08 15:25:01 +00:00
e115ac1006 silence of warnings for unused arguments
[SVN r43171]
2008-02-08 09:58:35 +00:00
8b712359a2 test
[SVN r43156]
2008-02-07 14:46:19 +00:00
428e72ed22 iterator_range disables msvc warning 4996
<http://svn.boost.org/trac/boost/ticket/1565>

[range] sub_range assignment issue
    <http://svn.boost.org/trac/boost/ticket/1284> 

[SVN r43155]
2008-02-07 14:41:04 +00:00
73db2a05b6 cleanup to pass inspection tool
[SVN r43135]
2008-02-06 23:12:21 +00:00
507d1e8075 fixed #if to #ifdef
[SVN r42715]
2008-01-13 11:37:41 +00:00
d31787daae doc fixes
[SVN r42693]
2008-01-12 12:38:57 +00:00
14a9a1906b Ticket #1477
[SVN r41638]
2007-12-03 09:08:02 +00:00
f65c137e73 missing include
[SVN r41636]
2007-12-03 09:00:23 +00:00
8085605217 fixed a serious oversigt
[SVN r41457]
2007-11-29 09:19:24 +00:00
0eb365edbe macro patch
[SVN r41183]
2007-11-17 21:24:16 +00:00
2e0d7eab4a removed some warnings
[SVN r41181]
2007-11-17 21:21:53 +00:00
637dc618d1 iostream macro patch
[SVN r41180]
2007-11-17 21:19:13 +00:00
dd1459f221 works after local test with vc8
[SVN r41177]
2007-11-17 20:44:29 +00:00
ba96d075b2 last updates
[SVN r41176]
2007-11-17 20:22:20 +00:00
a2f3a45214 minor update of comments
[SVN r41175]
2007-11-17 20:22:05 +00:00
6ac0cfe09c improved reference
[SVN r40968]
2007-11-09 15:15:28 +00:00
7b3857a9a8 minor tweaks to avoid warnings ... extension mechanism updated to follow new protocol
[SVN r40966]
2007-11-09 13:31:43 +00:00
2605b9ee45 update of new concepts, and replacement of range_size<T>::type with range_difference<T>::type throughut the library
[SVN r40965]
2007-11-09 13:30:57 +00:00
1509d5603b minor editorial issue
[SVN r40964]
2007-11-09 13:13:06 +00:00
93deddde63 major update wrt. new range concepts
[SVN r40962]
2007-11-09 10:27:42 +00:00
68a63cab85 added deprecated headers again for backward compatibility sake
[SVN r40629]
2007-10-31 21:48:11 +00:00
06c54ccd48 current version gave problem in regression ... to be updated later
[SVN r40612]
2007-10-30 19:47:40 +00:00
2e298b5e60 adds test for inclusion of concept header
[SVN r40521]
2007-10-28 10:11:54 +00:00
00e70244a5 fixes broken one from trunk ... still not finished
[SVN r40520]
2007-10-28 10:11:10 +00:00
3f98d69c94 added mfc/atl link
[SVN r40514]
2007-10-27 22:00:47 +00:00
4767db522b first update ... more to come
[SVN r40508]
2007-10-27 15:58:22 +00:00
f6e555dda3 updated example to new syntax
[SVN r40507]
2007-10-27 15:57:56 +00:00
01826978d6 cleaned up deprecated headers
[SVN r40506]
2007-10-27 15:57:20 +00:00
336c12b60f removed deprecated mfc stuff
[SVN r40425]
2007-10-24 15:53:54 +00:00
82768af3d2 roll-back of ADL names
[SVN r40423]
2007-10-24 15:19:16 +00:00
8984de1c74 roll back of ADL names
[SVN r40422]
2007-10-24 15:18:22 +00:00
4db083cd6d Shunsuke Sogame's MFC/ATL docs and tests
[SVN r40381]
2007-10-23 20:28:52 +00:00
f4cde208f2 Adding Shunsuke Sogame fantastic MFC/ATL mappings
[SVN r40379]
2007-10-23 20:23:05 +00:00
d130dff5ec cleanup
[SVN r40378]
2007-10-23 20:08:35 +00:00
aa9158b199 applied Ticket #1309 (new Patches)
[SVN r40377]
2007-10-23 19:56:39 +00:00
bbd9fdb7bd displabed some warnings and applied Ticket #1284: sub_range_copy.patch
[SVN r40376]
2007-10-23 19:50:59 +00:00
17514e1d44 added operator() to allow random access index with transform iterators
[SVN r40375]
2007-10-23 19:34:38 +00:00
d759c23552 added test for operator()
[SVN r40374]
2007-10-23 19:34:06 +00:00
cf9ad808a6 new fancy quickbook documentaion
[SVN r40373]
2007-10-23 19:12:19 +00:00
028bff0c22 changed ADL functions back the names of 1.34 ... these names have been in use for too long ... let's not break code that depends on them
[SVN r40372]
2007-10-23 19:07:38 +00:00
33a8016af3 change names of ADL functions back to 1.34 names ... the old names have been in use for too long so let's not break code that depends on them
[SVN r40371]
2007-10-23 19:06:39 +00:00
24466ae189 applied patch from Ticket #1302 (new Patches) to handle char arrays correctly
[SVN r40370]
2007-10-23 18:59:11 +00:00
c8ffe55ae5 added test for char array with nested null in response to Ticket #471
[SVN r40367]
2007-10-23 18:36:03 +00:00
a862a573df Applied patch from Ticket #1320
[SVN r40020]
2007-10-14 17:53:15 +00:00
0b0dfc0e06 Added missing boost namespace reference to as_literal.
[SVN r39683]
2007-10-04 11:51:51 +00:00
e0a76af0f9 Quiet unused argument warnings from gcc.
[SVN r39274]
2007-09-14 17:18:02 +00:00
78 changed files with 62 additions and 58 deletions

0
doc/examples.html Executable file → Normal file
View File

0
doc/faq.html Executable file → Normal file
View File

0
doc/headers.html Executable file → Normal file
View File

0
doc/history_ack.html Executable file → Normal file
View File

2
doc/intro.html Executable file → Normal file
View File

@ -24,7 +24,7 @@
to a somewhat clumsy use of the algorithms with redundant specification
of container names. Therefore we would like to raise the abstraction level
for algorithms so they specify their interface in terms of <a
href=range.html>Ranges</a> as much as possible.
href="range.html">Ranges</a> as much as possible.
</p>
<p>

0
doc/portability.html Executable file → Normal file
View File

0
doc/range.html Executable file → Normal file
View File

0
doc/style.css Executable file → Normal file
View File

2
doc/style.html Executable file → Normal file
View File

@ -53,7 +53,7 @@
<a href="range.html#bidirectional_range">Bidirectional Range</a> <li>
<a href="range.html#random_access_range">Random Access Range</a> </ul>
</ul>
Notice how we have used the categories from the <a href=../../iterator/doc/new-iter-concepts.html>new
Notice how we have used the categories from the <a href="../../iterator/doc/new-iter-concepts.html">new
style iterators</a>.
<p>

View File

@ -27,9 +27,9 @@
<ul>
<li>
Class <a href=#iter_range><code>iterator_range</code></a>
Class <a href="#iter_range"><code>iterator_range</code></a>
<li>
Class <a href=#sub_range><code>sub_range</code></a>
Class <a href="#sub_range"><code>sub_range</code></a>
</ul>
</ul>
@ -329,7 +329,7 @@ class can propagate constness since it knows what a corresponding
<span class=keyword>const </span><span class=identifier>value_type</span><span class=special>&amp; </span><span class=keyword>operator</span><span class=special>[]( </span><span class=identifier>difference_type </span><span class=identifier>at </span><span class=special>) </span><span class=keyword>const</span><span class=special>;</span>
<span class=keyword>public</span><span class=special>:
</span><span class=comment>// rest of interface inherited from <a href=#iter_range><code>iterator_range</code></a>
</span><span class=comment>// rest of interface inherited from <a href="#iter_range"><code>iterator_range</code></a>
</span><span class=special>};
</span>
<span class=special>} </span><span class=comment>// namespace 'boost'</span>

0
include/boost/range.hpp Executable file → Normal file
View File

0
include/boost/range/as_array.hpp Executable file → Normal file
View File

24
include/boost/range/as_literal.hpp Executable file → Normal file
View File

@ -8,8 +8,8 @@
// For more information, see http://www.boost.org/libs/range/
//
#ifndef BOOST_RANGE_DETAIL_AS_LITERAL_HPP
#define BOOST_RANGE_DETAIL_AS_LITERAL_HPP
#ifndef BOOST_RANGE_AS_LITERAL_HPP
#define BOOST_RANGE_AS_LITERAL_HPP
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
@ -25,7 +25,9 @@
#include <boost/detail/workaround.hpp>
#include <cstring>
#ifndef BOOST_NO_CWCHAR
#include <cwchar>
#endif
namespace boost
{
@ -36,10 +38,12 @@ namespace boost
return strlen( s );
}
#ifndef BOOST_NO_INTRINSIC_WCHAR_T
inline std::size_t length( const wchar_t* s )
{
return wcslen( s );
}
#endif
//
// Remark: the compiler cannot choose between T* and T[sz]
@ -57,7 +61,7 @@ namespace boost
return true;
}
#ifndef BOOST_NO_INTRINSIC_WCHAR_T
inline bool is_char_ptr( wchar_t* )
{
return true;
@ -67,6 +71,7 @@ namespace boost
{
return true;
}
#endif
template< class T >
inline long is_char_ptr( T /* r */ )
@ -107,22 +112,13 @@ namespace boost
template< class Char, std::size_t sz >
inline iterator_range<Char*> as_literal( Char (&arr)[sz] )
{
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x590)) && __BORLANDC__ >= 0x590
return boost::make_iterator_range<Char*>( arr, arr + sz - 1 );
#else
return boost::make_iterator_range( arr, arr + sz - 1 );
#endif
return range_detail::make_range( arr, range_detail::is_char_ptr(arr) );
}
template< class Char, std::size_t sz >
inline iterator_range<const Char*> as_literal( const Char (&arr)[sz] )
{
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x590)) && __BORLANDC__ >= 0x590
return boost::make_iterator_range<const Char*>( arr, arr + sz - 1 );
#else
return boost::make_iterator_range( arr, arr + sz - 1 );
#endif
return range_detail::make_range( arr, range_detail::is_char_ptr(arr) );
}
}

8
include/boost/range/begin.hpp Executable file → Normal file
View File

@ -73,15 +73,15 @@ namespace range_detail
// May this be discarded? Or is it needed for bad compilers?
//
template< typename T, std::size_t sz >
inline const T* range_begin( const T (&array)[sz] )
inline const T* range_begin( const T (&a)[sz] )
{
return array;
return a;
}
template< typename T, std::size_t sz >
inline T* range_begin( T (&array)[sz] )
inline T* range_begin( T (&a)[sz] )
{
return array;
return a;
}

0
include/boost/range/category.hpp Executable file → Normal file
View File

0
include/boost/range/concepts.hpp Executable file → Normal file
View File

0
include/boost/range/config.hpp Executable file → Normal file
View File

0
include/boost/range/const_iterator.hpp Executable file → Normal file
View File

0
include/boost/range/const_reverse_iterator.hpp Executable file → Normal file
View File

4
include/boost/range/detail/as_literal.hpp Executable file → Normal file
View File

@ -8,8 +8,8 @@
// For more information, see http://www.boost.org/libs/range/
//
#ifndef BOOST_RANGE_AS_LITERAL_HPP
#define BOOST_RANGE_AS_LITERAL_HPP
#ifndef BOOST_RANGE_DETAIL_AS_LITERAL_HPP
#define BOOST_RANGE_DETAIL_AS_LITERAL_HPP
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once

0
include/boost/range/detail/begin.hpp Executable file → Normal file
View File

0
include/boost/range/detail/collection_traits.hpp Executable file → Normal file
View File

View File

0
include/boost/range/detail/common.hpp Executable file → Normal file
View File

0
include/boost/range/detail/const_iterator.hpp Executable file → Normal file
View File

0
include/boost/range/detail/detail_str.hpp Executable file → Normal file
View File

0
include/boost/range/detail/difference_type.hpp Executable file → Normal file
View File

0
include/boost/range/detail/empty.hpp Executable file → Normal file
View File

0
include/boost/range/detail/end.hpp Executable file → Normal file
View File

0
include/boost/range/detail/implementation_help.hpp Executable file → Normal file
View File

0
include/boost/range/detail/iterator.hpp Executable file → Normal file
View File

0
include/boost/range/detail/remove_extent.hpp Executable file → Normal file
View File

0
include/boost/range/detail/sfinae.hpp Executable file → Normal file
View File

0
include/boost/range/detail/size.hpp Executable file → Normal file
View File

0
include/boost/range/detail/size_type.hpp Executable file → Normal file
View File

0
include/boost/range/detail/sizer.hpp Executable file → Normal file
View File

0
include/boost/range/detail/str_types.hpp Executable file → Normal file
View File

0
include/boost/range/detail/value_type.hpp Executable file → Normal file
View File

0
include/boost/range/detail/vc6/end.hpp Executable file → Normal file
View File

0
include/boost/range/detail/vc6/size.hpp Executable file → Normal file
View File

0
include/boost/range/difference_type.hpp Executable file → Normal file
View File

0
include/boost/range/distance.hpp Executable file → Normal file
View File

0
include/boost/range/empty.hpp Executable file → Normal file
View File

8
include/boost/range/end.hpp Executable file → Normal file
View File

@ -71,15 +71,15 @@ namespace range_detail
//////////////////////////////////////////////////////////////////////
template< typename T, std::size_t sz >
inline const T* range_end( const T (&array)[sz] )
inline const T* range_end( const T (&a)[sz] )
{
return range_detail::array_end<T,sz>( array );
return range_detail::array_end<T,sz>( a );
}
template< typename T, std::size_t sz >
inline T* range_end( T (&array)[sz] )
inline T* range_end( T (&a)[sz] )
{
return range_detail::array_end<T,sz>( array );
return range_detail::array_end<T,sz>( a );
}
#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \

0
include/boost/range/functions.hpp Executable file → Normal file
View File

0
include/boost/range/iterator.hpp Executable file → Normal file
View File

12
include/boost/range/iterator_range.hpp Executable file → Normal file
View File

@ -185,7 +185,7 @@ namespace boost
m_Begin(Begin), m_End(End)
#ifndef NDEBUG
, singular(false)
#endif
#endif
{}
//! Constructor from a Range
@ -210,7 +210,7 @@ namespace boost
template< class Range >
iterator_range( const Range& r, iterator_range_detail::const_range_tag ) :
m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) )
#ifndef NDEBUG
#ifndef NDEBUG
, singular(false)
#endif
{}
@ -219,7 +219,7 @@ namespace boost
template< class Range >
iterator_range( Range& r, iterator_range_detail::range_tag ) :
m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) )
#ifndef NDEBUG
#ifndef NDEBUG
, singular(false)
#endif
{}
@ -390,13 +390,15 @@ namespace boost
bool singular;
#endif
#ifndef NDEBUG
public:
bool is_singular() const
{
#ifndef NDEBUG
return singular;
#else
return false;
#endif
}
#endif
protected:
//

0
include/boost/range/metafunctions.hpp Executable file → Normal file
View File

0
include/boost/range/mutable_iterator.hpp Executable file → Normal file
View File

0
include/boost/range/pointer.hpp Executable file → Normal file
View File

0
include/boost/range/rbegin.hpp Executable file → Normal file
View File

0
include/boost/range/reference.hpp Executable file → Normal file
View File

0
include/boost/range/rend.hpp Executable file → Normal file
View File

0
include/boost/range/result_iterator.hpp Executable file → Normal file
View File

0
include/boost/range/reverse_iterator.hpp Executable file → Normal file
View File

0
include/boost/range/reverse_result_iterator.hpp Executable file → Normal file
View File

0
include/boost/range/size.hpp Executable file → Normal file
View File

0
include/boost/range/size_type.hpp Executable file → Normal file
View File

14
include/boost/range/sub_range.hpp Executable file → Normal file
View File

@ -23,6 +23,8 @@
#include <boost/range/size_type.hpp>
#include <boost/range/difference_type.hpp>
#include <boost/assert.hpp>
#include <boost/type_traits/is_reference.hpp>
#include <boost/type_traits/remove_reference.hpp>
namespace boost
{
@ -42,6 +44,12 @@ namespace boost
typedef BOOST_DEDUCED_TYPENAME range_size<ForwardRange>::type size_type;
typedef BOOST_DEDUCED_TYPENAME base::reference reference;
public: // for return value of front/back
typedef BOOST_DEDUCED_TYPENAME
boost::mpl::if_< boost::is_reference<reference>,
const BOOST_DEDUCED_TYPENAME boost::remove_reference<reference>::type&,
reference >::type const_reference;
public:
sub_range() : base()
{ }
@ -112,7 +120,7 @@ namespace boost
return base::front();
}
const value_type& front() const
const_reference front() const
{
return base::front();
}
@ -122,7 +130,7 @@ namespace boost
return base::back();
}
const value_type& back() const
const_reference back() const
{
return base::back();
}
@ -132,7 +140,7 @@ namespace boost
return base::operator[](sz);
}
const value_type& operator[]( difference_type sz ) const
const_reference operator[]( difference_type sz ) const
{
return base::operator[](sz);
}

0
include/boost/range/value_type.hpp Executable file → Normal file
View File

2
index.html Executable file → Normal file
View File

@ -22,7 +22,7 @@
</p>
<p>
Use, modification and distribution is subject to the Boost Software License, Version 1.0
(see <a href=http://www.boost.org/LICENSE_1_0.txt>
(see <a href="http://www.boost.org/LICENSE_1_0.txt">
http://www.boost.org/LICENSE_1_0.txt</a>).
</p>

View File

@ -14,7 +14,7 @@ rule range-test ( name : includes * )
run $(name).cpp /boost/test//boost_unit_test_framework/<link>static
:
:
: $(includes)
: <toolset>gcc:<cxxflags>"-Wall -Wunused "
] ;
}

0
test/adl_conformance.cpp Executable file → Normal file
View File

0
test/adl_conformance_no_using.cpp Executable file → Normal file
View File

0
test/algorithm_example.cpp Executable file → Normal file
View File

0
test/array.cpp Executable file → Normal file
View File

0
test/compat2.cpp Executable file → Normal file
View File

0
test/compat3.cpp Executable file → Normal file
View File

0
test/const_ranges.cpp Executable file → Normal file
View File

0
test/extension_mechanism.cpp Executable file → Normal file
View File

0
test/iterator_pair.cpp Executable file → Normal file
View File

0
test/iterator_range.cpp Executable file → Normal file
View File

0
test/mfc.cpp Executable file → Normal file
View File

0
test/partial_workaround.cpp Executable file → Normal file
View File

0
test/reversible_range.cpp Executable file → Normal file
View File

0
test/std_container.cpp Executable file → Normal file
View File

34
test/string.cpp Executable file → Normal file
View File

@ -137,14 +137,7 @@ void check_char()
BOOST_CHECK_EQUAL( str_end( char_s ), str_end1 );
BOOST_CHECK_EQUAL( str_empty( char_s ), (char_s == 0 || char_s[0] == char()) );
BOOST_CHECK_EQUAL( sz, std::char_traits<char>::length( char_s ) );
/*
BOOST_CHECK_EQUAL( str_begin( char_s2 ), char_s2 );
std::size_t sz2 = size( char_s2 );
const char* str_end12 = str_begin( char_s2 ) + sz;
BOOST_CHECK_EQUAL( str_end( char_s2 ), str_end12 );
BOOST_CHECK_EQUAL( empty( char_s2 ), (char_s2 == 0 || char_s2[0] == char()) );
BOOST_CHECK_EQUAL( sz2, std::char_traits<char>::length( char_s2 ) );
*/
BOOST_CHECK_EQUAL( str_begin( my_string ), my_string );
range_iterator<char_array_t>::type str_end2 = str_begin( my_string ) + str_size(my_string);
range_iterator<char_array_t>::type str_end3 = str_end(my_string);
@ -165,6 +158,20 @@ void check_char()
BOOST_CHECK( find_const( as_array( my_string ), to_search ) != str_end(my_string) );
BOOST_CHECK( find_const( as_array( my_const_string ), to_search ) != str_end(my_string) );
//
// Test that as_literal() always scan for null terminator
//
char an_array[] = "foo\0bar";
BOOST_CHECK_EQUAL( str_begin( an_array ), an_array );
BOOST_CHECK_EQUAL( str_end( an_array ), an_array + 3 );
BOOST_CHECK_EQUAL( str_size( an_array ), 3 );
const char a_const_array[] = "foobar\0doh";
BOOST_CHECK_EQUAL( str_begin( a_const_array ), a_const_array );
BOOST_CHECK_EQUAL( str_end( a_const_array ), a_const_array + 6 );
BOOST_CHECK_EQUAL( str_size( a_const_array ), 6 );
}
@ -172,9 +179,6 @@ void check_char()
void check_string()
{
check_char();
// check_char<volatile char>();
// check_char<const char>();
// check_char<const volatile char>();
#ifndef BOOST_NO_STD_WSTRING
typedef wchar_t* wchar_iterator_t;
@ -197,13 +201,7 @@ void check_string()
BOOST_CHECK_EQUAL( str_end(char_ws), (str_begin( char_ws ) + sz) );
BOOST_CHECK_EQUAL( str_empty( char_ws ), (char_ws == 0 || char_ws[0] == wchar_t()) );
BOOST_CHECK_EQUAL( sz, std::char_traits<wchar_t>::length( char_ws ) );
/*
std::size_t sz2 = size( char_ws2 );
BOOST_CHECK_EQUAL( str_begin( char_ws2 ), char_ws2 );
BOOST_CHECK_EQUAL( str_end( char_ws2 ), (begin( char_ws2 ) + sz2) );
BOOST_CHECK_EQUAL( empty( char_ws2 ), (char_ws2 == 0 || char_ws2[0] == wchar_t()) );
BOOST_CHECK_EQUAL( sz2, std::char_traits<wchar_t>::length( char_ws2 ) );
*/
wchar_t to_search = L'n';
BOOST_CHECK( find( char_ws, to_search ) != str_end(char_ws) );

0
test/sub_range.cpp Executable file → Normal file
View File