Compare commits

..

57 Commits

Author SHA1 Message Date
Marshall Clow
e9d0c54e71 Release 1.54.0
[SVN r84923]
2013-07-01 16:53:14 +00:00
Nathan Ridge
43d2ca8549 [range] Merge Boost.Range bug fixes to release branch (fixes #6944; fixes #7407; fixes #7408; fixes #7731; fixes #7827; fixes #8338; fixes #8453).
[SVN r84823]
2013-06-18 02:22:07 +00:00
Nathan Ridge
58d57f9b7b [range] merge documentation fix from trunk (refs #7926)
[SVN r82622]
2013-01-26 04:03:46 +00:00
Nathan Ridge
4df157ac11 [range] merge fix for typos in comments to release branch (refs #7916)
[SVN r82620]
2013-01-26 03:13:39 +00:00
Nathan Ridge
537f2474c9 [range] Merge documentation fixes and minor refactoring of docs (refs #5160; refs #5314; refs #5440; refs #5775; refs #6212; refs #7585; refs #7843; refs #7866).
[SVN r82487]
2013-01-14 09:19:32 +00:00
Nathan Ridge
2726efa8c1 [range] merged bug fixes (r81890, refs #5603; r82071, refs #6103) from trunk
[SVN r82139]
2012-12-21 08:47:14 +00:00
Nathan Ridge
a417560f09 [range] merge doc fixes (r81888, r81889) from trunk
[SVN r82138]
2012-12-21 08:44:32 +00:00
Neil Groves
bda0d613c1 [boost][range] merge from trunk to release
[SVN r80677]
2012-09-23 18:59:28 +00:00
Neil Groves
dc46fc13ab [boost][range] - Merge trac resolutions from the trunk. The most notable change is the alteration of the size type to be unsigned. This is a potentially breaking change.
[SVN r78860]
2012-06-08 22:59:54 +00:00
Neil Groves
2f3d82be9f [boost][range] - merge from trunk of miscellaneous defect fixes
[SVN r72427]
2011-06-05 21:47:57 +00:00
Bryce Adelstein-Lelbach
47e478d099 Merge to release.
[SVN r72228]
2011-05-27 19:51:13 +00:00
Neil Groves
cafea6aea5 [boost][range] - Merge a fix to undo an erroneous change to iterator_range.size() that allowed it to compile for ranges that did not model the Random Access Range Concept and thereby broken the complexity guarantees.
[SVN r68190]
2011-01-16 17:07:27 +00:00
Neil Groves
6d46ce412f [range] - merge the tested changes from the trunk in preparation for the 1.46 release.
[SVN r67905]
2011-01-10 06:35:02 +00:00
Neil Groves
674be9dfa0 [boost][range] - merge from trunk which fixes a defect in the strided range adaptor, and contains improvements to the documentation
[SVN r67454]
2010-12-26 15:13:43 +00:00
Daniel James
65b22bfa38 Merge filesystem, range, doc from trunk.
* Inline deprecated methods in filesystem.
* Fix some links in range.
* Clean up test document a bit.


[SVN r64315]
2010-07-24 14:26:01 +00:00
Daniel James
fb8994f51c Merge documentation changes.
[SVN r64186]
2010-07-19 23:29:09 +00:00
Neil Groves
26c095d022 Boost.Range merge of bug fixes and documentation
[SVN r64120]
2010-07-18 11:36:34 +00:00
Daniel James
ca2328ed87 Merge documentation fixes.
* Use `doc/src/*.css` instead of `doc/html/*.css`.
* Remove wiki and people directories.
* Some documentation fixes.
* Left out `minimal.css` changes and boostbook changes because of clashes.


[SVN r63347]
2010-06-26 12:30:09 +00:00
Douglas Gregor
794fd3e226 Move Boost.Range's join_iterator intrusive_ptr_add_ref and intrusive_ptr_release where ADL will actually find them
[SVN r61867]
2010-05-09 01:32:55 +00:00
Douglas Gregor
88001ada37 Merge standards-conformance fixes for Boost.Range
[SVN r61864]
2010-05-09 01:23:32 +00:00
Neil Groves
91d62c2c1a Boost.Range documentation merge from the trunk. Corrects inconsitency with return types, Range Return Categories etc.
[SVN r61685]
2010-04-29 21:18:58 +00:00
Neil Groves
f9eeb5d447 Boost.Range correct missing items from merge by merging these changes manually.
This changeset is what should have happened with the prior svn merge operation.

[SVN r61519]
2010-04-23 23:18:59 +00:00
Neil Groves
a47f15a98f Boost.Range merge from trunk to release.
This is motivated by the need to correct the istream_range, to correct the adaptors.hpp header file, and correct the return types of various range algorithms.

[SVN r61517]
2010-04-23 22:50:56 +00:00
Neil Groves
dfc30e334d Boost.Range merged defect fix for iterator_range.
[SVN r61280]
2010-04-14 21:15:41 +00:00
Neil Groves
13b748a228 Boost.Range removed deprecated html documentation.
[SVN r61181]
2010-04-10 15:25:56 +00:00
Neil Groves
eea32403ef Boost.Range merge of fixes from the trunk.
[SVN r61146]
2010-04-08 19:34:17 +00:00
Neil Groves
29b2053f5c Merged the new Boost.Range into the release branch.
[SVN r61052]
2010-04-04 20:00:13 +00:00
Troy D. Straszheim
29fa877949 rm cmake from the release branch before it goes out broken. Policy dictates that you never commit to release, you commit to trunk and merge to release.
[SVN r56941]
2009-10-17 01:10:45 +00:00
Troy D. Straszheim
a39946c55d Add basic copyright/license to keep cmake out of the inspection report
[SVN r55095]
2009-07-22 21:51:01 +00:00
Daniel James
90f4eca5cd Merge in inspect checks for links in CSS files and external content. And fix a few of these issues.
Merged revisions 52663-52664,52666-52668,52712 via svnmerge from 
https://svn.boost.org/svn/boost/trunk

........
  r52663 | danieljames | 2009-04-29 22:12:08 +0100 (Wed, 29 Apr 2009) | 1 line
  
  Check for invalid css links in html files as well as css files.
........
  r52664 | danieljames | 2009-04-29 22:12:32 +0100 (Wed, 29 Apr 2009) | 1 line
  
  Check for external links.
........
  r52666 | danieljames | 2009-04-29 22:19:12 +0100 (Wed, 29 Apr 2009) | 1 line
  
  Use local copies of the boost logo.
........
  r52667 | danieljames | 2009-04-29 22:19:40 +0100 (Wed, 29 Apr 2009) | 1 line
  
  Remove unused copy of boostbook.css
........
  r52668 | danieljames | 2009-04-29 22:19:56 +0100 (Wed, 29 Apr 2009) | 3 lines
  
  Fix a link to a header on trac.
  
  IMO it would be better to link to the local copy.
........
  r52712 | danieljames | 2009-05-01 21:51:10 +0100 (Fri, 01 May 2009) | 1 line
  
  Better inspect error for external content.
........


[SVN r53044]
2009-05-16 13:45:21 +00:00
Thorsten Jørgen Ottosen
c8c808b04e fix for bug Ticket #2903
[SVN r52204]
2009-04-05 20:49:47 +00:00
John Maddock
deefb61ec6 Merge PDF build changes from Trunk.
[SVN r51417]
2009-02-23 18:39:32 +00:00
Troy D. Straszheim
12d904a5e4 merge of cmake build files from trunk per beman
[SVN r50756]
2009-01-24 18:57:20 +00:00
Thorsten Jørgen Ottosen
26b096f65d update in response to inspection report
[SVN r47681]
2008-07-22 09:29:56 +00:00
Thorsten Jørgen Ottosen
a85afbe470 doc update
[SVN r47495]
2008-07-16 21:05:16 +00:00
Thorsten Jørgen Ottosen
e7902d439b more changes from trunk
[SVN r46652]
2008-06-24 15:42:48 +00:00
Thorsten Jørgen Ottosen
b4f99d66b5 bug-fixes from trunk
[SVN r46649]
2008-06-24 15:38:50 +00:00
Thorsten Jørgen Ottosen
d1c2c5ce3f bug-fixes from trunk
[SVN r46647]
2008-06-24 15:37:59 +00:00
Thorsten Jørgen Ottosen
062e820882 cleanup to pass inspection tool
[SVN r43139]
2008-02-07 08:38:07 +00:00
Thorsten Jørgen Ottosen
4d381e8564 fixed #if -> #ifdef
[SVN r42716]
2008-01-13 11:38:13 +00:00
Thorsten Jørgen Ottosen
fd00cc129f doc fixes
[SVN r42692]
2008-01-12 12:38:46 +00:00
Thorsten Jørgen Ottosen
8291ce67fc minor changes from trunk
[SVN r41751]
2007-12-05 17:30:23 +00:00
Thorsten Jørgen Ottosen
dbfa1df088 missing include (Ticket #1463)
[SVN r41637]
2007-12-03 09:01:03 +00:00
Thorsten Jørgen Ottosen
5afec2b74f merge from truck (boost::size()->boost::distance())
[SVN r41635]
2007-12-03 08:51:22 +00:00
Beman Dawes
a33d5c22c5 Full merge from trunk at revision 41356 of entire boost-root tree.
[SVN r41370]
2007-11-25 18:38:02 +00:00
Beman Dawes
901266b76a Full merge from trunk at revision 41356 of entire boost-root tree.
[SVN r41369]
2007-11-25 18:07:19 +00:00
Beman Dawes
25e932149c Starting point for releases
[SVN r39706]
2007-10-05 14:25:06 +00:00
nobody
c54e15d374 This commit was manufactured by cvs2svn to create tag
'Version_1_34_1'.

[SVN r38286]
2007-07-24 19:28:14 +00:00
Thorsten Jørgen Ottosen
fd448ffa31 removed invalid test
[SVN r37117]
2007-02-28 22:27:50 +00:00
Thorsten Jørgen Ottosen
21b558fe5e license info
[SVN r36156]
2006-11-22 22:33:09 +00:00
Thorsten Jørgen Ottosen
33c8f3e3ec *** empty log message ***
[SVN r36155]
2006-11-22 22:27:28 +00:00
Vladimir Prus
523f8a5926 Merge from HEAD.
Allow building of shared versions of some Boost.Test libraries.
Adjust tests to use always use static linking to Boost.Test, since
linking to the shared version requires test changes.

Patch from Juergen Hunold.


[SVN r35990]
2006-11-10 19:59:52 +00:00
Rene Rivera
3bd0d886c4 Remove obsolete Boost.Build v1 files.
[SVN r35880]
2006-11-06 17:10:46 +00:00
Thorsten Jørgen Ottosen
e46eae8144 *** empty log message ***
[SVN r35717]
2006-10-24 10:37:46 +00:00
Daniel James
12cf02586c Remove tabs
[SVN r34957]
2006-08-26 14:28:38 +00:00
Thorsten Jørgen Ottosen
ee024f588b applied borland patch
[SVN r33670]
2006-04-11 20:12:31 +00:00
nobody
8e715b3810 This commit was manufactured by cvs2svn to create branch 'RC_1_34_0'.
[SVN r33417]
2006-03-21 02:26:31 +00:00
142 changed files with 1137 additions and 727 deletions

View File

@@ -171,7 +171,7 @@
[def __metafunctions__ [@boost:/libs/mpl/doc/refmanual/metafunction.html metafunctions]]
[def __concept_check__ [@boost:/libs/concept_check/index.html Boost Concept Check library]]
[def __boost_array__ [@boost:/libs/array/index.html boost::array]]
[def __the_forwarding_problem__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1385.htm The Forwarding Problem]]
[def __the_forwarding_problem__ [@http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2002/n1385.htm The Forwarding Problem]]
[def __sgi_inner_product__ [@http://www.sgi.com/tech/stl/inner_product.html inner_product]]
[def __sgi_partial_sum__ [@http://www.sgi.com/tech/stl/partial_sum.html partial_sum]]

View File

@@ -11,13 +11,23 @@
#ifndef BOOST_RANGE_HPP_27_07_04
#define BOOST_RANGE_HPP_27_07_04
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif
#if _MSC_VER == 1300 // experiment
#include <boost/range/detail/collection_traits.hpp>
#include <boost/range/iterator_range.hpp>
#include <boost/range/sub_range.hpp>
#else
#include <boost/range/functions.hpp>
#include <boost/range/metafunctions.hpp>
#include <boost/range/iterator_range.hpp>
#include <boost/range/sub_range.hpp>
#endif // _MSC_VER == 1300 // experiment
#endif

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

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

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

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

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

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

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

View File

@@ -52,9 +52,9 @@ namespace boost
template< class T, class U, class V >
struct regex_holder
{
T re;
U sub;
V f;
const T& re;
const U& sub;
V f;
regex_holder( const T& rex, const U& subm, V flag ) :
re(rex), sub(subm), f(flag)

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

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

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

View File

@@ -19,7 +19,7 @@
// were originally written by Vladimir Prus'
// <ghost@cs.msu.su> code from Boost Wiki
#if defined(_MSC_VER)
#if defined(_MSC_VER) && _MSC_VER >= 1000
#pragma once
#endif

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

View File

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

View File

@@ -89,11 +89,11 @@ inline BOOST_DEDUCED_TYPENAME range_return<ForwardRange, return_begin_found>::ty
unique( ForwardRange& rng, BinaryPredicate pred )
{
BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept<ForwardRange> ));
return ::boost::range::unique<return_begin_found>(rng, pred);
return ::boost::range::unique<return_begin_found>(rng);
}
/// \overload
template< class ForwardRange, class BinaryPredicate >
inline BOOST_DEDUCED_TYPENAME range_return<const ForwardRange, return_begin_found>::type
inline BOOST_DEDUCED_TYPENAME range_iterator<const ForwardRange>::type
unique( const ForwardRange& rng, BinaryPredicate pred )
{
BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept<const ForwardRange> ));

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

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

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

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

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

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

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

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

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

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

View File

@@ -11,7 +11,7 @@
#ifndef BOOST_RANGE_AS_ARRAY_HPP
#define BOOST_RANGE_AS_ARRAY_HPP
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif

View File

@@ -11,7 +11,7 @@
#ifndef BOOST_RANGE_AS_LITERAL_HPP
#define BOOST_RANGE_AS_LITERAL_HPP
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif

View File

@@ -35,6 +35,15 @@
#endif
#if !defined(BOOST_RANGE_ATL_HAS_OLD_CSIMPLESTRING)
#if (_MSC_VER < 1310) // from <boost/regex/mfc.hpp>, but dubious
#define BOOST_RANGE_ATL_HAS_OLD_CSIMPLESTRING
#endif
#endif
// forward declarations
//

View File

@@ -11,7 +11,7 @@
#ifndef BOOST_RANGE_BEGIN_HPP
#define BOOST_RANGE_BEGIN_HPP
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif
@@ -26,7 +26,9 @@
namespace boost
{
#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
!BOOST_WORKAROUND(__GNUC__, < 3) \
/**/
namespace range_detail
{
#endif
@@ -83,7 +85,9 @@ namespace range_detail
}
#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
!BOOST_WORKAROUND(__GNUC__, < 3) \
/**/
} // namespace 'range_detail'
#endif
@@ -96,7 +100,9 @@ namespace range_adl_barrier
template< class T >
inline BOOST_DEDUCED_TYPENAME range_iterator<T>::type begin( T& r )
{
#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
!BOOST_WORKAROUND(__GNUC__, < 3) \
/**/
using namespace range_detail;
#endif
return range_begin( r );
@@ -105,7 +111,9 @@ inline BOOST_DEDUCED_TYPENAME range_iterator<T>::type begin( T& r )
template< class T >
inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type begin( const T& r )
{
#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
!BOOST_WORKAROUND(__GNUC__, < 3) \
/**/
using namespace range_detail;
#endif
return range_begin( r );

View File

@@ -11,7 +11,7 @@
#ifndef BOOST_RANGE_CATEGORY_HPP
#define BOOST_RANGE_CATEGORY_HPP
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif

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

View File

@@ -13,7 +13,7 @@
#include <boost/detail/workaround.hpp>
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif
@@ -26,14 +26,18 @@
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
# define BOOST_RANGE_DEDUCED_TYPENAME typename
#else
#define BOOST_RANGE_DEDUCED_TYPENAME BOOST_DEDUCED_TYPENAME
# if BOOST_WORKAROUND(BOOST_MSVC, == 1300) && !defined(_MSC_EXTENSIONS)
# define BOOST_RANGE_DEDUCED_TYPENAME typename
# else
# define BOOST_RANGE_DEDUCED_TYPENAME BOOST_DEDUCED_TYPENAME
# endif
#endif
#ifdef BOOST_RANGE_NO_ARRAY_SUPPORT
#error "macro already defined!"
#endif
#if BOOST_WORKAROUND( __MWERKS__, <= 0x3003 )
#if BOOST_WORKAROUND( BOOST_MSVC, < 1300 ) || BOOST_WORKAROUND( __MWERKS__, <= 0x3003 )
#define BOOST_RANGE_NO_ARRAY_SUPPORT 1
#endif
@@ -44,12 +48,6 @@
#define BOOST_RANGE_ARRAY_REF() (&boost_range_array)
#endif
#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)))
# define BOOST_RANGE_UNUSED __attribute__((unused))
#else
# define BOOST_RANGE_UNUSED
#endif
#endif

View File

@@ -11,12 +11,15 @@
#ifndef BOOST_RANGE_CONST_ITERATOR_HPP
#define BOOST_RANGE_CONST_ITERATOR_HPP
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif
#include <boost/range/config.hpp>
#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
#include <boost/range/detail/const_iterator.hpp>
#else
#include <boost/range/detail/extract_optional_type.hpp>
#include <boost/type_traits/remove_const.hpp>
@@ -59,5 +62,6 @@ namespace boost
} // namespace boost
#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
#endif

View File

@@ -11,7 +11,7 @@
#ifndef BOOST_RANGE_CONST_REVERSE_ITERATOR_HPP
#define BOOST_RANGE_CONST_REVERSE_ITERATOR_HPP
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif

View File

@@ -11,7 +11,7 @@
#ifndef BOOST_RANGE_DETAIL_AS_LITERAL_HPP
#define BOOST_RANGE_DETAIL_AS_LITERAL_HPP
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif

View File

@@ -15,6 +15,9 @@
#include <boost/detail/workaround.hpp>
#include <boost/range/iterator.hpp>
#include <boost/range/detail/common.hpp>
#if BOOST_WORKAROUND(BOOST_MSVC, < 1310)
# include <boost/range/value_type.hpp>
#endif
namespace boost
{
@@ -59,11 +62,19 @@ namespace boost
template<>
struct range_begin<array_>
{
#if !BOOST_WORKAROUND(BOOST_MSVC, < 1310)
template< typename T, std::size_t sz >
static T* fun( T BOOST_RANGE_ARRAY_REF()[sz] )
{
return boost_range_array;
}
#else
template<typename T>
static BOOST_RANGE_DEDUCED_TYPENAME range_value<T>::type* fun(T& t)
{
return t;
}
#endif
};
} // namespace 'range_detail'

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

View File

@@ -185,6 +185,7 @@ namespace boost {
// Array container traits ---------------------------------------------------------------
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
// array traits ( partial specialization )
template< typename T >
struct array_traits;
@@ -203,6 +204,125 @@ namespace boost {
BOOST_STATIC_CONSTANT( size_type, array_size = sz );
};
#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
// array traits ( no partial specialization )
/*
without partial specialization we are able to
provide support only for a limited number of
types. Currently the primitive numeric types
are supported
*/
template< typename T, typename BaseT >
struct array_traits_impl
{
typedef BaseT value_type;
typedef BaseT* iterator;
typedef const BaseT* const_iterator;
typedef std::size_t size_type;
typedef std::ptrdiff_t difference_type;
// size of the array
BOOST_STATIC_CONSTANT( size_type, array_size = sizeof(T)/sizeof(BaseT) );
};
template< typename T, typename BaseT >
struct array_traits_impl_selector
{
typedef array_traits_impl<T,BaseT> type;
};
struct array_traits_void
{
typedef void type;
};
template< typename T, typename BaseT >
struct array_traits_cv_selector
{
typedef BOOST_STRING_TYPENAME
::boost::mpl::eval_if<
::boost::is_convertible<T,BaseT*>,
array_traits_impl_selector<T,BaseT>,
::boost::mpl::eval_if<
::boost::is_convertible<T,const BaseT*>,
array_traits_impl_selector<T, const BaseT>,
::boost::mpl::eval_if<
::boost::is_convertible<T, volatile BaseT*>,
array_traits_impl_selector<T, volatile BaseT>,
array_traits_impl_selector<T, const volatile BaseT>
>
>
>::type type;
};
template< typename T >
struct array_traits_select
{
template< typename T1, typename T2 >
struct apply
{
typedef BOOST_STRING_TYPENAME
::boost::mpl::eval_if<
::boost::is_convertible<T,const volatile T2*>,
array_traits_cv_selector<T,T2>,
::boost::mpl::identity<T1> >::type type;
};
};
template< typename T >
struct array_traits_selector
{
private:
// supported array base types
#ifndef BOOST_NO_INTRINSIC_WCHAR_T
typedef BOOST_STRING_TYPENAME
::boost::mpl::vector10<
wchar_t,
#else // BOOST_NO_INTRINSIC_WCHAR_T
typedef BOOST_STRING_TYPENAME
::boost::mpl::vector9<
#endif // BOOST_NO_INTRINSIC_WCHAR_T
char,
signed char,
unsigned char,
signed short,
unsigned short,
signed int,
unsigned int,
signed long,
unsigned long
>::type array_base_types;
public:
typedef BOOST_STRING_TYPENAME
::boost::mpl::fold<
array_base_types,
::boost::algorithm::detail::array_traits_void,
::boost::algorithm::detail::array_traits_select<T> >::type type;
};
template< typename T >
struct array_traits
{
typedef BOOST_STRING_TYPENAME
array_traits_selector<T>::type traits_type;
typedef BOOST_STRING_TYPENAME
traits_type::value_type value_type;
typedef BOOST_STRING_TYPENAME
traits_type::iterator iterator;
typedef BOOST_STRING_TYPENAME
traits_type::const_iterator const_iterator;
typedef BOOST_STRING_TYPENAME
traits_type::size_type size_type;
typedef BOOST_STRING_TYPENAME
traits_type::difference_type difference_type;
BOOST_STATIC_CONSTANT( size_type, array_size = traits_type::array_size );
};
#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
// array length resolving
/*

View File

@@ -11,7 +11,7 @@
#ifndef BOOST_RANGE_DETAIL_COMMON_HPP
#define BOOST_RANGE_DETAIL_COMMON_HPP
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif

View File

@@ -0,0 +1,71 @@
// 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/
//
#ifndef BOOST_RANGE_DETAIL_CONST_ITERATOR_HPP
#define BOOST_RANGE_DETAIL_CONST_ITERATOR_HPP
#include <boost/range/detail/common.hpp>
#include <boost/range/detail/remove_extent.hpp>
//////////////////////////////////////////////////////////////////////////////
// missing partial specialization workaround.
//////////////////////////////////////////////////////////////////////////////
namespace boost
{
namespace range_detail
{
template< typename T >
struct range_const_iterator_;
template<>
struct range_const_iterator_<std_container_>
{
template< typename C >
struct pts
{
typedef BOOST_RANGE_DEDUCED_TYPENAME C::const_iterator type;
};
};
template<>
struct range_const_iterator_<std_pair_>
{
template< typename P >
struct pts
{
typedef BOOST_RANGE_DEDUCED_TYPENAME P::first_type type;
};
};
template<>
struct range_const_iterator_<array_>
{
template< typename T >
struct pts
{
typedef const BOOST_RANGE_DEDUCED_TYPENAME
remove_extent<T>::type* type;
};
};
}
template< typename C >
class range_const_iterator
{
typedef BOOST_DEDUCED_TYPENAME range_detail::range<C>::type c_type;
public:
typedef BOOST_DEDUCED_TYPENAME range_detail::range_const_iterator_<c_type>::BOOST_NESTED_TEMPLATE pts<C>::type type;
};
}
#endif

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

View File

@@ -14,9 +14,15 @@
#include <boost/config.hpp> // BOOST_MSVC
#include <boost/detail/workaround.hpp>
#include <boost/range/detail/implementation_help.hpp>
#include <boost/range/iterator.hpp>
#include <boost/range/detail/common.hpp>
#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
# include <boost/range/detail/vc6/end.hpp>
#else
# include <boost/range/detail/implementation_help.hpp>
# include <boost/range/iterator.hpp>
# include <boost/range/detail/common.hpp>
# if BOOST_WORKAROUND(BOOST_MSVC, < 1310)
# include <boost/range/detail/remove_extent.hpp>
# endif
namespace boost
{
@@ -62,11 +68,19 @@ namespace boost
template<>
struct range_end<array_>
{
#if !BOOST_WORKAROUND(BOOST_MSVC, < 1310)
template< typename T, std::size_t sz >
static T* fun( T BOOST_RANGE_ARRAY_REF()[sz] )
{
return boost::range_detail::array_end( boost_range_array );
}
#else
template<typename T>
static BOOST_RANGE_DEDUCED_TYPENAME remove_extent<T>::type* fun(T& t)
{
return t + remove_extent<T>::size;
}
#endif
};
} // namespace 'range_detail'
@@ -83,4 +97,5 @@ namespace boost
} // namespace 'boost'
# endif // VC6
#endif

View File

@@ -10,7 +10,7 @@
#ifndef BOOST_RANGE_DETAIL_EXTRACT_OPTIONAL_TYPE_HPP_INCLUDED
#define BOOST_RANGE_DETAIL_EXTRACT_OPTIONAL_TYPE_HPP_INCLUDED
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif

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

@@ -21,13 +21,13 @@
#include <wchar.h>
#endif
namespace boost
namespace boost
{
namespace range_detail
{
template <typename T>
inline void boost_range_silence_warning( const T& ) { }
/////////////////////////////////////////////////////////////////////
// end() help
/////////////////////////////////////////////////////////////////////
@@ -36,7 +36,7 @@ namespace boost
{
return s + strlen( s );
}
#ifndef BOOST_NO_CWCHAR
inline const wchar_t* str_end( const wchar_t* s, const wchar_t* )
{
@@ -51,7 +51,7 @@ namespace boost
;
return s;
}
#endif
#endif
template< class Char >
inline Char* str_end( Char* s )
@@ -64,7 +64,7 @@ namespace boost
{
return boost_range_array + sz;
}
template< class T, std::size_t sz >
inline const T* array_end( const T BOOST_RANGE_ARRAY_REF()[sz] )
{
@@ -74,7 +74,7 @@ namespace boost
/////////////////////////////////////////////////////////////////////
// size() help
/////////////////////////////////////////////////////////////////////
template< class Char >
inline std::size_t str_size( const Char* const& s )
{
@@ -96,7 +96,7 @@ namespace boost
}
} // namespace 'range_detail'
} // namespace 'boost'

View File

@@ -0,0 +1,78 @@
// 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/
//
#ifndef BOOST_RANGE_DETAIL_ITERATOR_HPP
#define BOOST_RANGE_DETAIL_ITERATOR_HPP
#include <boost/range/detail/common.hpp>
#include <boost/range/detail/remove_extent.hpp>
#include <boost/static_assert.hpp>
//////////////////////////////////////////////////////////////////////////////
// missing partial specialization workaround.
//////////////////////////////////////////////////////////////////////////////
namespace boost
{
namespace range_detail
{
template< typename T >
struct range_iterator_ {
template< typename C >
struct pts
{
typedef int type;
};
};
template<>
struct range_iterator_<std_container_>
{
template< typename C >
struct pts
{
typedef BOOST_RANGE_DEDUCED_TYPENAME C::iterator type;
};
};
template<>
struct range_iterator_<std_pair_>
{
template< typename P >
struct pts
{
typedef BOOST_RANGE_DEDUCED_TYPENAME P::first_type type;
};
};
template<>
struct range_iterator_<array_>
{
template< typename T >
struct pts
{
typedef BOOST_RANGE_DEDUCED_TYPENAME
remove_extent<T>::type* type;
};
};
}
template< typename C >
class range_mutable_iterator
{
typedef BOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type c_type;
public:
typedef typename range_detail::range_iterator_<c_type>::BOOST_NESTED_TEMPLATE pts<C>::type type;
};
}
#endif

View File

@@ -23,10 +23,6 @@
#include <boost/range/empty.hpp>
#include <boost/range/detail/demote_iterator_traversal_tag.hpp>
#include <boost/range/value_type.hpp>
#include <boost/type_traits/add_const.hpp>
#include <boost/type_traits/add_reference.hpp>
#include <boost/type_traits/remove_const.hpp>
#include <boost/type_traits/remove_reference.hpp>
#include <boost/next_prior.hpp>
namespace boost
@@ -75,9 +71,7 @@ public:
Reference dereference(unsigned int selected) const
{
if (selected)
return *m_it2;
return *m_it1;
return selected ? *m_it2 : *m_it1;
}
bool equal(const join_iterator_union& other, unsigned int selected) const
@@ -150,7 +144,7 @@ template<typename Iterator1
>::type
>::value,
typename add_const<
typename iterator_reference<Iterator1>::type
typename iterator_reference<Iterator2>::type
>::type,
typename iterator_reference<Iterator1>::type
>::type

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

View File

@@ -168,7 +168,7 @@ namespace boost
typedef boost::iterator_range<
BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type > type;
static type pack(BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type,
static type pack(BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type found,
SinglePassRange& rng)
{
return type(boost::begin(rng), boost::end(rng));

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

View File

@@ -0,0 +1,159 @@
// 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/
//
#ifndef BOOST_RANGE_DETAIL_SIZE_HPP
#define BOOST_RANGE_DETAIL_SIZE_HPP
#include <boost/config.hpp> // BOOST_MSVC
#include <boost/detail/workaround.hpp>
#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
# include <boost/range/detail/vc6/size.hpp>
#else
# include <boost/range/detail/implementation_help.hpp>
# include <boost/range/detail/size_type.hpp>
# include <boost/range/detail/common.hpp>
# if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
# include <boost/range/detail/remove_extent.hpp>
# endif
# include <iterator>
namespace boost
{
namespace range_detail
{
template< typename T >
struct range_size_;
//////////////////////////////////////////////////////////////////////
// default
//////////////////////////////////////////////////////////////////////
template<>
struct range_size_<std_container_>
{
template< typename C >
static BOOST_RANGE_DEDUCED_TYPENAME C::size_type fun( const C& c )
{
return c.size();
};
};
//////////////////////////////////////////////////////////////////////
// pair
//////////////////////////////////////////////////////////////////////
template<>
struct range_size_<std_pair_>
{
template< typename P >
static BOOST_RANGE_DEDUCED_TYPENAME range_size<P>::type
fun( const P& p )
{
return std::distance( p.first, p.second );
}
};
//////////////////////////////////////////////////////////////////////
// array
//////////////////////////////////////////////////////////////////////
template<>
struct range_size_<array_>
{
#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
template< typename T, std::size_t sz >
static std::size_t fun( T BOOST_RANGE_ARRAY_REF()[sz] )
{
return sz;
}
#else
template<typename T>
static std::size_t fun(T& t)
{
return remove_extent<T>::size;
}
#endif
};
template<>
struct range_size_<char_array_>
{
template< typename T, std::size_t sz >
static std::size_t fun( T BOOST_RANGE_ARRAY_REF()[sz] )
{
return boost::range_detail::array_size( boost_range_array );
}
};
template<>
struct range_size_<wchar_t_array_>
{
template< typename T, std::size_t sz >
static std::size_t fun( T BOOST_RANGE_ARRAY_REF()[sz] )
{
return boost::range_detail::array_size( boost_range_array );
}
};
//////////////////////////////////////////////////////////////////////
// string
//////////////////////////////////////////////////////////////////////
template<>
struct range_size_<char_ptr_>
{
static std::size_t fun( const char* s )
{
return boost::range_detail::str_size( s );
}
};
template<>
struct range_size_<const_char_ptr_>
{
static std::size_t fun( const char* s )
{
return boost::range_detail::str_size( s );
}
};
template<>
struct range_size_<wchar_t_ptr_>
{
static std::size_t fun( const wchar_t* s )
{
return boost::range_detail::str_size( s );
}
};
template<>
struct range_size_<const_wchar_t_ptr_>
{
static std::size_t fun( const wchar_t* s )
{
return boost::range_detail::str_size( s );
}
};
} // namespace 'range_detail'
template< typename C >
BOOST_RANGE_DEDUCED_TYPENAME range_size<C>::type
size( const C& c )
{
return range_detail::range_size_< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type >::fun( c );
}
} // namespace 'boost'
# endif
#endif

View File

@@ -11,7 +11,7 @@
#ifndef BOOST_RANGE_DETAIL_SIZER_HPP
#define BOOST_RANGE_DETAIL_SIZER_HPP
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
# pragma once
#endif

Some files were not shown because too many files have changed in this diff Show More