Commit Graph

377 Commits

Author SHA1 Message Date
Jean-Philippe DUFRAIGNE
1b4f8100ef Allow iterator copy for lambda in transformed and filtered
Lambda has no default constructor nor a copy or move assignment.

range\test\adaptors.cpp is checking that produced ranges are copiable,
but it is not doing so the for lambda, or lambda like objects.

default_constructible_unary_fn uses an optional for default
construction.
I extended it to use its emplace facility to copy assign non copy
assignable types.
(see boost::optional 'Type Requierment':  'If T is not MoveAssignable,
it is still possible to reset the value of optional<T> using function
emplace():')
2016-10-23 23:27:31 +01:00
neilgroves
5a37aa4e98 Merge pull request #41 from robin-eckert/adaptor_ref_unwrapped
add a new range adaptor boost::adaptors::ref_unwrapped
2016-01-04 16:38:36 +00:00
Robin Eckert
3225aaf82b add a new range adaptor boost::adaptors::ref_unwrapped
The new adaptor is like boost::adaptors::indirected, but for
std::reference_wrapper values (instead of pointer). It calls
.get() on every value and returns the result. It is useful for
range-based iteration of ranges of std::reference_wrapper (or
related) types.
2015-11-04 19:12:26 +01:00
treh
262c0f96b3 qualify boost::range_[const|mutable]_iterator
otherwise boost::range_detail::range_[const|mutable]_iterator gets accidentily called
2015-11-04 09:58:15 +01:00
Marcel Raad
9bf860fd30 Fix compilation
boost::detail::iterator_traits was used without including the necessary header file. It's deprecated anyway and only maps to std::iterator_traits.
2015-09-18 09:54:08 +02:00
neilgroves
64c83341ab Merge pull request #37 from mclow/develop
Remove use of deprecated macros
2015-09-13 21:52:09 +01:00
Marshall Clow
6241dc62aa Remove use of deprecated macros 2015-09-11 15:16:24 -07:00
neilgroves
f83381d938 Merge pull request #36 from morinmorin/fix/ticket11563
Fix ticket 11563 (boost::range behavior changed from 1.55 to 1.56)
2015-09-07 07:45:08 +01:00
morinmorin
490ba3fdcd Reapply r85400 (this time use Iterator1 instead of Iterator2 as per r85691) and enhance the testcase; fixes ticket 11563. 2015-08-21 21:40:25 +09:00
morinmorin
adcb071dc6 Replace std::min_element/max_element with boost::first_min_element/first_max_element to accept a range that models ForwardRange but its underlying iterator models only InputIterator; fixes ticket 11528. 2015-08-20 20:03:08 +09:00
Marshall Clow
11dbb1cb5a Add char16_t and char32_t to the list of literal string types. Fixes bug 11265 in Boost.StringAlgo's join. 2015-05-12 21:26:05 -06:00
neilgroves
e961e66909 Merge pull request #26 from Yasami/develop
fix missing return statement
2015-04-27 19:51:18 +01:00
Edward Diener
0c930a3697 Fix syntax error. 2015-04-27 14:06:59 -04:00
Edward Diener
09084d6355 Use || operator instead of boost::mpl::or_ for constant boolean value since current Boost compilers all support operator use. 2015-04-27 13:18:48 -04:00
Eric Niebler
3d5f3611ba fix build break on msvc-8.0 2015-04-18 11:42:38 -07:00
neilgroves
8c1180f7f2 Merge pull request #27 from eldiener/develop
Remove dependency on type traits ice_xxx.hpp headers, which are deprecat...
2015-04-14 09:27:05 +01:00
Eric Niebler
811b27141a make range_iterator, range_difference, and range_size SFINAE-friendly, refs #11187 2015-04-14 00:57:54 -07:00
Edward Diener
a53bd134b2 Remove dependency on type traits ice_xxx.hpp headers, which are deprecated. 2015-04-02 01:54:45 -04:00
Neil Groves
0b28fd043f Fix for MSVC subrange iterator conversions. 2015-02-09 01:21:16 +00:00
Masahide Sakamaki
474c62ab16 fix missing return statement 2015-02-04 15:52:15 +09:00
Neil Groves
435ca994bf Ticket 10989 - strided adapter category. 2015-02-02 20:17:04 +00:00
Neil Groves
4a80ccd50d Ticket 10988 - Filtered adaptor should only require SinglePassRange. 2015-02-01 19:05:58 +00:00
Neil Groves
688d1bc418 Update inclusion of polymorphic_cast.hpp to cat.hpp 2015-01-31 13:31:33 +00:00
neilgroves
dcbe4f9365 Merge pull request #21 from Lastique/patch-1
Use public interface of Boost.Iterator
2015-01-25 19:15:31 +00:00
Stephen Kelly
8bb3a85f68 Use local sfinae typedefs for yes_type and no_type.
Remove dependency on Boost.Algorithm library.
2014-09-10 15:37:48 +02:00
Stephen Kelly
0e9a9e613b Rely on the 'typename' keyword from the compiler.
Remove trailing whitespace from modified lines.

 git grep -l BOOST_STRING_TYPENAME | xargs sed -i 's|BOOST_STRING_TYPENAME *$|typename|'
 git grep -l BOOST_STRING_TYPENAME | xargs sed -i 's|BOOST_STRING_TYPENAME \(.*\) +$|typename \1|'
 git grep -l BOOST_STRING_TYPENAME | xargs sed -i 's|BOOST_STRING_TYPENAME|typename|'

Remove include of header from Boost.Algorithm library providing the define.
2014-09-10 15:37:45 +02:00
Andrey Semashev
4617c43b5e Use public interface of Boost.Iterator 2014-08-30 16:04:46 +04:00
Eric Niebler
7d13f63d5d avoid SFINAE problem in iterator_range constructor 2014-08-09 14:48:57 -07:00
Neil Groves
7fb879a283 Hotfix to add back advance_begin and advance_end. 2014-08-04 17:53:14 +01:00
Eric Niebler
4716c1efec Merge pull request #16 from ericniebler/develop
attempted fix for iterator_range relational operators bug
2014-07-30 07:53:31 -07:00
Eric Niebler
1617a513d2 accomodate new boost::iterators namespace. See boostorg/iterator@dc96d371fa 2014-07-29 18:18:02 -07:00
Eric Niebler
c2a7ac4197 attempted fix for iterator_range relational operators bug 2014-07-29 17:53:27 -07:00
Eric Niebler
8a8b511109 remove executable bit on range.hpp 2014-07-22 09:36:52 -07:00
Eric Niebler
fbf91ce2da add missing inline keyword 2014-07-22 09:21:24 -07:00
Neil Groves
0ffe40272a Merge branch 'develop' - to incorporate the MSVC workaround for range_iterator by Eric Niebler. 2014-07-15 10:32:55 +01:00
Eric Niebler
d6dd1ad193 work-around for msvc limitation that causes has_iterator<> to fail for structs named iterator. Only applies to msvc-10.0 and earlier. 2014-07-14 00:03:45 -07:00
Neil Groves
cf6fabe950 Merge branch 'develop' - contains emergency fix to traversal tags to fix the accumulator tests. 2014-06-19 10:33:51 +01:00
Eric Niebler
1eecd2c2f6 handle composite iterator traversals in iterator_range 2014-06-19 00:43:52 -07:00
Neil Groves
e33c501c05 Merge branch 'develop' - small fixes in addition to a more major fix for adaptors
producing iterators that did not have default constructors.
2014-06-16 22:51:08 +01:00
Neil Groves
3ecf600434 Fixed range adaptors that were creating underlying iterators that were not default constructible. 2014-06-16 14:49:25 +01:00
Kohei Takahashi
61e02039dd More remove execute attribute from files.
rel. to:
  e0e6fefb1e

Signed-off-by: Kohei Takahashi <flast@flast.jp>
2014-06-16 20:28:02 +09:00
neilgroves
a0dad84a13 Merge pull request #10 from apolukhin/develop
Replaced deprecated cast.hpp with polymorphic_cast.hpp. Droped dependenc...
2014-06-16 10:40:18 +01:00
Eric Niebler
264017e2a9 more robust implementation for BOOST_RANGE_EXTRACT_OPTIONAL_TYPE 2014-06-16 00:00:09 -07:00
Neil Groves
12d4af20dd Merge branch 'develop' - improved indexed adaptor 2014-06-09 12:06:20 +01:00
Antony Polukhin
5ba77001dd Replaced deprecated cast.hpp with polymorphic_cast.hpp. Droped dependency to the Numeric library 2014-06-09 13:21:24 +04:00
Neil Groves
5ce6dc7814 change the return type from the indexed adaptor so that the index is available from the range element. 2014-06-09 02:12:00 +01:00
Neil Groves
749b1c5456 Merge branch 'develop' to incorporate trac 10098 2014-06-08 23:54:18 +01:00
Neil Groves
344f578934 trac_10098 iterator_range sign warning. 2014-06-07 17:19:35 +01:00
Neil Groves
6ee61a6578 Merge branch 'develop' - to include the range_fwd.hpp header file. 2014-06-07 17:07:15 +01:00
Neil Groves
fe1a592e46 add a range_fwd.hpp header file for the main classes/structs and the extension points. 2014-06-05 19:10:19 +01:00