Commit Graph

405 Commits

Author SHA1 Message Date
Andrey Semashev
8fe632d6b1 Copied minimum_category.hpp to public headers. 2014-07-19 21:03:11 +04:00
Andrey Semashev
810b58cfb0 Moved pure_traversal_tag to public namespace.
Also added an import into the boost::detail namespace for backward compatibility with Boost.Range. Added a pure_iterator_traversal metafunction that automatically converts iterator category as well.
2014-07-19 20:57:42 +04:00
Kohei Takahashi
156c13a494 Merge upstream branch 'develop' into pr/zip_iterator/fusionize
Signed-off-by: Kohei Takahashi <flast@flast.jp>
2014-07-12 15:57:03 +09:00
Andrey Semashev
269de2691a Added a workaround for boost/token_iteratpr.hpp which uses an implementation detail of this library. 2014-07-07 22:22:28 +04:00
Kohei Takahashi
11f7d1bc18 Merge upstream branch 'develop' into pr/zip_iterator/fusionize
Signed-off-by: Kohei Takahashi <flast@flast.jp>
2014-07-03 21:52:26 +09:00
Andrey Semashev
4a403cd3eb Trim spaces. 2014-07-03 00:36:44 +04:00
Andrey Semashev
dc96d371fa Moved most components of the library to iterators:: namespace.
This change excludes boost:: and boost::detail:: namespaces from ADL for unqualified function calls (e.g. algorithms). This reduces the possibility of name clashes with other libraries and user's code. One of the effects should be fixing test failures on gcc 4.2 and 4.4 due to clashed with Boost.TypeTraits.

Also some of the functions marked with inline keyword.
2014-07-03 00:22:45 +04:00
Noel Belcourt
e000b676cc Merge pull request #4 from Lastique/sfinae-based-operators
Make iterator operators conditionally defined depending on its category.

Looks okay and fixes several known problems, thanks Andrey.
2014-06-30 16:49:53 -06:00
Daniel James
25139e1311 Remove operator_brackets_dispatch.hpp
I should have removed it in 8e5b8025d8.
2014-06-30 10:53:35 +01:00
Kohei Takahashi
aad767ed3f Merge upstream branch 'develop' into pr/zip_iterator/fusionize 2014-06-30 11:13:38 +09:00
Andrey Semashev
7fa65a4278 Made iterator operators conditionally defined depending on its category.
This makes iterators defined using iterator_facade more friendly to type inspection and fixes its use with next()/prior() since commit 651a869d4f.
The arithmetic, indexing and relational operators are only defined if the iterator category or traversal permits that. Note that the implementation requires partial template specialization support now.
2014-06-30 00:05:38 +04:00
Andrey Semashev
36988fcf98 Removed executable flags from headers. 2014-06-29 15:42:47 +04:00
Kohei Takahashi
782313db8c Remove unnecessary specialization
Signed-off-by: Kohei Takahashi <flast@flast.jp>
2014-06-14 15:59:31 +09:00
Kohei Takahashi
c040d4c38b make_zip_iterator should be inlined
Signed-off-by: Kohei Takahashi <flast@flast.jp>
2014-06-14 15:59:31 +09:00
Kohei Takahashi
1ddaca8297 zip_iterator specialization for std::pair
Signed-off-by: Kohei Takahashi <flast@flast.jp>
2014-06-14 15:59:31 +09:00
Kohei Takahashi
acf9b4d4cf Reimplement zip_iterator based on Boost.Fusion
By default, backward compatibility for Boost.Tuple is presented.

Signed-off-by: Kohei Takahashi <flast@flast.jp>
2014-06-12 01:05:36 +09:00
Daniel James
187bc896f6 BOOST_ITERATOR_CATEGORY shouldn't be removed.
Since it was documented, it should be kept for backwards compatiblity.
2014-06-06 23:03:03 +01:00
Stephen Kelly
6883d083d2 Iterator: Remove obsolete MSVC version checks.
[SVN r86082]

Conflicts:
	include/boost/iterator/iterator_facade.hpp
2014-06-06 23:03:03 +01:00
Stephen Kelly
0345db959b Remove use of BOOST_ITERATOR_CATEGORY
[SVN r86056]
2014-06-06 23:03:03 +01:00
Stephen Kelly
d814423414 Iterator: Remove obsolete GCC version check.
[SVN r86055]
2014-06-06 23:03:03 +01:00
Stephen Kelly
eb288b2908 Iterator: Remove use of eti baseclass workaround.
[SVN r85940]
2014-06-06 23:03:03 +01:00
Stephen Kelly
a803b5b42d Remove use of obsolete BOOST_TT_BROKEN_COMPILER_SPEC
[SVN r86250]
2014-06-06 01:06:48 +01:00
Daniel James
8d96469cb4 Add link to changeset mentioned in comment. 2014-06-06 01:03:30 +01:00
Jeffrey Lee Hellrung, Jr
09549a613e refs #6403
[SVN r80903]
2014-06-06 01:03:30 +01:00
Daniel James
8e5b8025d8 Revert changes that were merged to master.
Reverted: 2e099caceb9..21102938e8ccb

I'm going to reapply some of them soon, but it's easier to revert them
all first, as there are conflicts. Also the number of changes that were
inserted since then, mean that there would be a huge gap between related
changes.
2014-06-06 00:56:20 +01:00
Peter Dimov
c142956936 Remove boost/iterator.hpp, it has been moved to core. 2014-06-05 03:09:11 +03:00
Douglas Gregor
f2137c58b7 Converted to Boost Software License, Version 1.0
[SVN r24055]
2014-06-05 02:27:23 +03:00
Dave Abrahams
0dfc7bd53c Removed access category tags from iterator library, made corresponding changes elsewhere.
boost/iterator and libs/iterator/test were updated from
branch "simplify"

[SVN r20905]
2014-06-05 02:27:23 +03:00
Dave Abrahams
ae1d0d0dfe Move to new iterator adaptors
[SVN r19074]
2014-06-05 02:27:22 +03:00
Beman Dawes
9ddc974825 add or update See www.boost.org comments
[SVN r16708]
2014-06-05 02:27:22 +03:00
Jens Maurer
35cf24d413 add boost::generator_iterator_policies and convenience classes
[SVN r11725]
2014-06-05 02:27:20 +03:00
Andrey Semashev
91b2854e4a Removed executable attribute. 2014-06-05 01:33:57 +03:00
Peter Dimov
27b44876bc Link to documentation added.
[SVN r27745]
2014-06-05 01:33:56 +03:00
Aleksey Gurtovoy
123bf514ac merge new MPL version from 'mplbook' branch
[SVN r24874]
2014-06-05 01:33:56 +03:00
Dave Abrahams
ac7b14253f Kill off outer cv-stripping of Dereferenceable
[SVN r21696]
2014-06-05 01:33:55 +03:00
Dave Abrahams
69df402f70 Updated pointee and indirect_reference so that pointee represents the immutability of the pointed-to type via const qualification. The pointee of a proxy-based iterator will be const qualified unless a mutable reference to the value_type can be bound to the returned proxy.
Added a test for pointee

Fixed iterator_facade so operator[] result type computation didn't
cause a problem with abstract types.

Updated iterator_facade operator[] docs for accuracy.

Allowed Borland to simply fail the indirect_iterator_member_types test
because of its lame const-dropping, instead of trying to work around
it.

[SVN r21579]
2014-06-05 01:33:55 +03:00
Dave Abrahams
e600d3f65b Added traits:
is_incrementable.hpp: checks whether ++x is well-formed

   pointee.hpp: value_type of iterators or smart pointers

   indirect_reference.hpp: reference type of iterators or smart pointers

indirect_iterator.hpp
indirect_iterator_member_types.cpp

   Use pointee/indirect_reference to select value/reference type.

iterator_concepts.hpp: Fixed interoperable test.  Hardly tests enough, but it's a start

minimum_category.hpp: Better error messages for vc6

indirect_iterator_test.cpp: Workarounds for compilers without SFINAE

static_assert_same.hpp: Informative error reports; added a macro.

zip_iterator_test.hpp: Added missing #include

Jamfile: made zip_iterator test pass with vc6/stlport

[SVN r21514]
2014-06-05 01:33:54 +03:00
Stephen Kelly
a1c0cf8373 Remove use of obsolete BOOST_TT_BROKEN_COMPILER_SPEC
[SVN r86250]
2014-06-05 01:15:17 +03:00
Stephen Kelly
220a11883c Remove remaining occurances of BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
These evaded scripting.

[SVN r86249]
2014-06-05 01:14:58 +03:00
Stephen Kelly
913df78ec0 Simplify multi-component ifdefs containing BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
[SVN r86248]
2014-06-05 01:14:37 +03:00
Stephen Kelly
01f9b396d8 Remove BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
Process #ifdef...#else...#endif blocks.

[SVN r86246]
2014-06-05 01:14:14 +03:00
Stephen Kelly
67d418a5c6 Remove BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
Process #ifndef...#endif conditions.

[SVN r86244]
2014-06-05 01:13:55 +03:00
Stephen Kelly
d853e444ce Iterator: Remove obsolete MSVC version checks.
[SVN r86082]
2014-06-05 01:13:31 +03:00
Stephen Kelly
e6d5c24b91 Remove use of BOOST_ITERATOR_CATEGORY
[SVN r86056]
2014-06-05 01:13:14 +03:00
Stephen Kelly
98db5b4f9a Iterator: Remove obsolete GCC version check.
[SVN r86055]
2014-06-05 01:13:00 +03:00
Stephen Kelly
739c95411f Iterator: Remove use of eti baseclass workaround.
[SVN r85940]
2014-06-05 01:12:47 +03:00
Jeffrey Lee Hellrung, Jr
8ce330a111 refs #6403
[SVN r80903]
2014-06-05 01:12:20 +03:00
Jeffrey Lee Hellrung, Jr
d291c7b43e - BREAKING CHANGE: iterator_facade::pointer now corresponds to the actual result of iterator_facade::operator-> rather than Value*. This required an adjustment to a test.
- The logic for determining the result of iterator_facade::operator[] has been factored out into a separate detail header in preparation for its potential use in iterator_range to avoid iterator_range::operator[] from returning a reference to a temporary.

[SVN r80901]
2014-06-05 01:11:49 +03:00
Jeffrey Lee Hellrung, Jr.
6d0b2d4f8a Merging trunk to release; fixing typo in comments of iterator_facade.
[SVN r80818]
2012-10-02 13:30:46 +00:00
Jeffrey Lee Hellrung, Jr.
c9463e941f Merging boost/iterator from trunk to release (usability improvement after latest fix to function_input_iterator).
[SVN r80813]
2012-10-02 01:14:36 +00:00
Jeffrey Lee Hellrung, Jr.
9025bbfc2a Merging boost/iterator and libs/iterator trunk to release.
[SVN r80568]
2012-09-18 02:50:52 +00:00
Jeffrey Lee Hellrung, Jr.
c7fc3470d0 merging from trunk; fix #5127 from M. Morin; fix for refs #5697
[SVN r78184]
2012-04-24 21:28:07 +00:00
Jeremiah Willcock
fbbdcf8c99 Merged in BGL, enable_if, and related changes from trunk: r67035, r57559, r72837, r73010, r73026, r72960, r73425, r73424, r73009, r73998, r73997, r73006, r73630, r73631, r73999, r73422, r73423, r73996, r71221
[SVN r74023]
2011-08-23 18:26:46 +00:00
Daniel James
5d72ae48da Iterator: Use boost::result_of to determine nested result type of function in transform_iterator. Fixes #1427.
[SVN r70715]
2011-03-29 21:31:29 +00:00
Daniel James
1ca1caddff Iterator: merge several changes from trunk.
- Update iterator_facade test for #1019
  (header change already merged).
- Category of each iterator is reduced to a known category before we try to
  find a minimum. Fixes #1517.
- `function_input_iterator` from Dean Michael Berris. Fixes #2893
- Fix typo in `boost/iterator.hpp`. Fixes #3434.
- Always include `add_reference` header in iterator adaptor header.

Did not merge changes for #1427.


[SVN r70709]
2011-03-29 21:17:11 +00:00
Daniel James
d45b57c33c Revert [68076], refs #1427.
Will try to fix this properly in 1.47.


[SVN r68524]
2011-01-28 08:40:25 +00:00
Marshall Clow
5a88e6f958 Merging fixes to release; Fixes #1427
[SVN r68076]
2011-01-13 01:25:09 +00:00
Marshall Clow
36565eae63 Merging fixes to release; fixes #2294 fixes #4918 fixes #3645 refs #2823 refs #1427 refs #2893
[SVN r67792]
2011-01-08 18:38:08 +00:00
Jeremiah Willcock
f65f03afcc Merged r62593 from trunk
[SVN r62594]
2010-06-08 19:11:44 +00:00
Nicola Musatti
2ece3ac5c2 CodeGear patch. Fixes #2344
[SVN r49321]
2008-10-13 19:27:26 +00:00
Dave Abrahams
78effefadb Merging SunPro 5.9 workaround from trunk
[SVN r47467]
2008-07-16 04:52:14 +00:00
Boris Gubenko
6d0f901b2e merge trunk version (changeset/42064) to release branch
[SVN r42129]
2007-12-17 18:43:36 +00:00
Beman Dawes
23d53055f9 Full merge from trunk at revision 41356 of entire boost-root tree.
[SVN r41369]
2007-11-25 18:07:19 +00:00
Dave Abrahams
aa483f4961 Correct testing bugs:
either changing assert(...) or BOOST_ASSERT(...) to BOOST_TEST
    (in my code only)

    or adding "return boost::report_errors();" where it was clearly
    missing (and a pure bug, in anyone's code).

    or changing BOOST_TEST to BOOST_CHECK where the integer library
    was clearly using Boost.Test and not returning report_errors().


[SVN r37063]
2007-02-25 15:28:02 +00:00
Dave Abrahams
02d22c12ae fix for http://tinyurl.com/kbwzm
[SVN r35102]
2006-09-13 22:36:10 +00:00
Dave Abrahams
70ef2f0e81 fix for http://tinyurl.com/zuohe
[SVN r35101]
2006-09-13 22:24:14 +00:00
Dave Abrahams
b7283c93c6 merged from trunk
[SVN r35075]
2006-09-12 22:34:33 +00:00
Dave Abrahams
f482354ffd merged from trunk
[SVN r33820]
2006-04-25 20:35:01 +00:00
Dave Abrahams
d79112ee5a merged from trunk
[SVN r33713]
2006-04-16 18:03:52 +00:00
Dave Abrahams
a4e7ba6c28 Fixed definition of iterator_facade_ nested type so derived classes
can use it.  It appears to have never been tested.


[SVN r33297]
2006-03-09 23:09:16 +00:00
Dave Abrahams
e23a647cff Eliminate duplicate inline keyword warnings.
[SVN r32993]
2006-02-18 18:00:26 +00:00
Dave Abrahams
d801e64289 Added some missing "inline" keywords.
[SVN r32992]
2006-02-18 14:34:12 +00:00
Alisdair Meredith
6a79b6014b Removed unused workaround definition
[SVN r32340]
2006-01-17 08:28:32 +00:00
Thomas Witt
73811245eb Fix counting_iterator::distance_to fails to instantiate for non default template arguments.
[SVN r31758]
2005-11-23 19:12:49 +00:00
Dave Abrahams
1c3e6c5b65 GCC 4.0.2 workarounds
[SVN r31295]
2005-10-11 23:43:44 +00:00
Douglas Gregor
bbef2422ad Qualify boost::detail
[SVN r30736]
2005-08-30 10:44:32 +00:00
John Maddock
ae45f7abf7 Large patch from Ulrich Eckhardt to fix support for EVC++ 4.
[SVN r30670]
2005-08-25 16:27:28 +00:00
Dave Abrahams
7a43350655 Avoid some Borland bugs by defining operators explicitly rather than
using partially_ordered<...> to generate them.


[SVN r29757]
2005-06-23 18:20:37 +00:00
Markus Schöpflin
df49ae74e0 Define BOOST_NO_LVALUE_RETURN_DETECTION for Tru64/CXX-6.5.
[SVN r29545]
2005-06-13 08:22:38 +00:00
Dave Abrahams
ab372a0a74 Added failing test for missing #include guard, then fixed it.
[SVN r28459]
2005-04-24 11:48:23 +00:00
Peter Dimov
741da59c0d Link to documentation added.
[SVN r27745]
2005-03-20 14:53:58 +00:00
Dave Abrahams
a0b28e4c8b Fix for indirect iterators to abstract classes.
[SVN r27625]
2005-03-12 23:10:43 +00:00
Rene Rivera
ef895f0cc7 Apply typo fixes from Julio M. Merino Vidal
[SVN r27513]
2005-02-27 17:28:24 +00:00
Vladimir Prus
1d018cc602 Borland workaround. Replace 'add_const<value_type>::type with
'const value_type' in the code which computed the pointer type. Borland
did not property add const type with 'add_const'.


[SVN r27388]
2005-02-15 12:41:23 +00:00
Dave Abrahams
7707262a07 base_type patch from Eric Niebler
[SVN r26818]
2005-01-23 15:40:15 +00:00
Dave Abrahams
ba3e7a459e Allow for bidirectional filtered_iterators
[SVN r26491]
2004-12-13 09:31:17 +00:00
Dave Abrahams
295ae05e40 Fix the problems described in this thread:
http://lists.boost.org/MailArchives/boost-users/msg08656.php


[SVN r26410]
2004-12-03 09:55:30 +00:00
Dave Abrahams
68268f81eb Stop relying on T(x) to do implicit conversion; it *casts* when T is a builtin!
[SVN r26393]
2004-12-01 16:46:06 +00:00
Dave Abrahams
65af4c96a9 Move indirect_traits to boost/detail
[SVN r25117]
2004-09-15 15:00:12 +00:00
John Maddock
a396085bc0 Added new types boost::long_long_type and boost::ulong_long_type in boost/config.hpp and applied these types in place of "long long" throughout. As a result, almost all of boost now compiles cleanly with -ansi -pedantic with gcc. Changes tested with gcc 3.3, 2.95, VC7.1 and Intel 8.
[SVN r24899]
2004-09-04 10:34:49 +00:00
Aleksey Gurtovoy
6196a6e591 merge new MPL version from 'mplbook' branch
[SVN r24874]
2004-09-02 15:41:37 +00:00
Dave Abrahams
4e07575b78 Update tests for fixed postfix increment
[SVN r24617]
2004-08-20 16:04:11 +00:00
John Maddock
557ef60557 Converted files to the BSL.
[SVN r24614]
2004-08-20 11:10:24 +00:00
Douglas Gregor
4b583d3aa0 License update
[SVN r24598]
2004-08-19 15:23:47 +00:00
Dave Abrahams
e469abbf57 Work around an MSVC-stlport ICE
[SVN r24567]
2004-08-18 19:00:18 +00:00
Dave Abrahams
c141f6cc59 obsolete
[SVN r24508]
2004-08-16 14:24:49 +00:00
Douglas Gregor
55f8a6380a Moved to BSL
[SVN r24446]
2004-08-12 17:13:07 +00:00
Douglas Gregor
9c955e8af2 Moved to BSL
[SVN r24445]
2004-08-12 17:02:24 +00:00
Dave Abrahams
82108581b9 Make sure that X(r++) works for writable iterators.
[SVN r24420]
2004-08-11 19:54:40 +00:00
Thomas Witt
c4834d363e More (C).
[SVN r24383]
2004-08-10 15:12:53 +00:00