Dimitrij Mijoski
eacea4664d
implement string_view.find(string) in terms of traits.compare and find.
...
This should be faster that it's previous implementations
in terms of std::search()
2018-04-02 00:52:57 +02:00
Dimitrij Mijoski
1fe5af5264
Faster find functions in string_view by using traits::find()
2018-04-01 20:00:03 +02:00
Peter Dimov
56f13625b1
Fix link to declval
boost-1.67.0
2017-12-24 00:33:12 +02:00
Peter Dimov
ac4e8da91d
Only install the necessary submodules in Travis and Appveyor
2017-12-24 00:28:06 +02:00
Peter Dimov
426836d860
Remove shared_iterator files (they're in Iterator now)
2017-12-24 00:05:50 +02:00
Peter Dimov
82df2b82fc
Merge pull request #37 from glenfe/develop
...
Utility tests should use lightweight_test instead of test
2017-12-23 21:52:07 +02:00
Glen Fernandes
f8a243bcff
Utility tests should use lightweight_test instead of test
2017-12-23 13:00:33 -05:00
Peter Dimov
51f7f7f53e
Add -d0 to b2 headers
on Appveyor
2017-12-23 12:01:03 +02:00
Peter Dimov
5f535a151c
Add -j3 to Travis
2017-12-23 11:56:09 +02:00
Peter Dimov
c88936800d
Remove dependency on Random in operators_test.cpp
2017-12-23 06:19:43 +02:00
Peter Dimov
96fbce5759
Remove use of shared_ptr in test/value_init_test.cpp
2017-12-23 04:44:29 +02:00
Peter Dimov
9d46de1578
Replace use of mpl/has_xxx.hpp with handwritten traits
2017-12-21 06:30:03 +02:00
Peter Dimov
976a4d2fc1
Merge branch 'develop' into feature/result_of-no-mpl
2017-12-20 23:16:08 +02:00
Peter Dimov
ea81279b35
Add appveyor.yml
2017-12-20 23:14:36 +02:00
Peter Dimov
7d101d420c
Replace mpl primitives with type_traits
2017-12-20 21:55:07 +02:00
Peter Dimov
d8acfef27b
Update includes in utility.hpp; add deprecation comment
2017-12-02 04:35:22 +02:00
Peter Dimov
d7ae336915
Merge branch 'master' into develop
2017-12-02 03:47:03 +02:00
Peter Dimov
b74f49f1e5
Remove dependency on iterator in <boost/utility.hpp>
2017-12-02 03:38:29 +02:00
Daniel Frey
5977f11be8
Merge pull request #36 from boostorg/develop
...
Protect dereferenceable<> against overloaded operator&, fixes #35
boost-1.66.0
2017-12-01 20:59:24 +01:00
Daniel Frey
ad0fc7c9d3
Protect dereferenceable<> against overloaded operator&, fixes #35
2017-11-23 21:14:07 +01:00
Peter Dimov
a6c175e2c3
clang 3.5 can't handle libstdc++-5
2017-10-28 14:11:41 +03:00
Peter Dimov
874ca2307b
Update clangs to libstdc++-5-dev for constexpr std::min
2017-10-28 04:49:50 +03:00
Peter Dimov
5220260145
Update .travis.yml
2017-10-27 15:31:19 +03:00
Daniel Frey
2f5a6fbcf1
Adapt to C++17, fixes #34
2017-10-15 10:34:04 +02:00
Peter Dimov
51ba9f1b45
Add one more case to value_init_workaround_test
2017-09-24 12:47:05 +03:00
Andrey Semashev
5cef1403b0
Merge pull request #33 from morinmorin/fix_no_expr_sfinae
...
result_of<F&(…)> fails on MSVC-12 if F is a function pointer
2017-09-23 21:59:06 +03:00
morinmorin
81ce4693f6
Add tests for result_of<F&(...)> in C++11.
2017-09-20 23:44:35 +09:00
morinmorin
fb2f110eb4
Fix result_of_is_callable to support references to function pointers.
...
On compilers without the support of expression SFINAE, decltype-based
result_of<FP&(...)> failed to compile (FP is a function pointer type).
2017-09-20 23:40:56 +09:00
Andrey Semashev
2ed5ee9588
Moved numeric_traits_test.cpp to Boost.Detail.
2017-09-20 01:42:15 +03:00
Andrey Semashev
88c36c1941
Remove generator iterator test and docs as these were moved to Boost.Iterator.
2017-08-28 20:41:11 +03:00
Andrey Semashev
0b2409a942
Updated links to next/prior docs.
2017-08-26 20:07:12 +03:00
Andrey Semashev
62b39548be
Moved next/prior to Boost.Iterator.
2017-08-26 17:25:14 +03:00
Andrey Semashev
2722fdcda3
Use std::iterator_traits to detect iterators, when possible.
...
This allows next/prior to detect user's iterators that do not
define iterator_category nested type but specialize
std::iterator_traits instead.
2017-07-23 20:29:25 +03:00
Andrey Semashev
792d0538d2
Merge branch 'develop'
boost-1.65.1
boost-1.65.0
2017-07-17 20:47:57 +03:00
Andrey Semashev
06ae661775
Merge pull request #31 from Lastique/next_prior_use_traversal
...
Use Boost.Iterator to advance iterators.
2017-07-13 21:04:18 +03:00
Andrey Semashev
d9d076874e
Merge branch 'develop'
2017-07-13 20:59:28 +03:00
Andrey Semashev
e25d85446e
Use Boost.Iterator to advance iterators.
...
By using Boost.Iterator we rely on the separate traversal category instead of
the standard iterator category to advance iterators efficiently. For instance,
this allows to advance transform iterators over a random access sequence
in constant time, despite that they are formally input iterators.
Also, std::reverse_iterator formally requires at least bidirectional iterator
as the underlying iterator type. Transform iterators from the example above
don't qualify, so potentially std::reverse_iterator could fail to compile.
2017-07-12 21:15:20 +03:00
Andrey Semashev
5bc9e47688
Changed iterator_category nested type detection to work with MSVC and different versions of gcc.
2017-07-12 20:14:48 +03:00
Andrey Semashev
ec50f22b8b
Merge pull request #30 from Lastique/fix_next_prior_for_iterators
...
Fix next/prior for iterators
2017-07-09 13:41:03 +03:00
Brian Minard
592382dc61
Add test cases for std::reverse_iterator
2017-07-09 03:10:10 +03:00
Andrey Semashev
6cf9c22cf1
Reworked iterator handling in next/prior helpers.
...
The new implementation tries to detect if the incremented/decremented type
is an iterator first and if not falls back to operator probing. This way
iterators that are not SFINAE-friendly (i.e. unconditionally define
arithmetic operators regardless of the iterator category) are still treated
as iterators through std::advance and do not fail the compilation.
The iterator detection is based on probing for the nested iterator_category
type that is expected to be present in class-type iterators. This heuristic
is not flawless since iterators are not required to defined this type.
User-defined iterators may not have it and instead specialize
std::iterator_traits. This use case is not covered by the current implementation
and will likely fail to compile. With C++17 SFINAE-friendly std::iterator_traits
this can be fixed, but currently Boost.Config lacks the macro to detect
availability of this feature. Support for it can be added by a later commit.
Also simplified boost::prior for iterators, removing the possibility of
integer overflow caused by negation of the distance value.
2017-07-09 03:10:01 +03:00
Peter Dimov
33475f87e4
Merge branch 'develop'
2017-05-30 15:08:09 +03:00
Peter Dimov
21261a8630
Add visible dependency to result_of_iterate.hpp
2017-05-30 01:20:02 +03:00
Peter Dimov
7d60e8e378
Merge branch 'develop'
2017-05-30 00:56:41 +03:00
Peter Dimov
10ff4d4fcd
Try to upgrade libstdc++ for clang in 14/1z mode
2017-05-29 21:27:57 +03:00
Peter Dimov
89bf74beee
Add .travis.yml
2017-05-29 19:16:28 +03:00
Peter Dimov
bfdcce0f97
Move test files to test/
2017-05-29 19:10:46 +03:00
Marshall Clow
330b49d602
Mark comparison operators for string_view as constexpr; add tests. Reference: https://svn.boost.org/trac/boost/ticket/12896
2017-05-03 19:58:02 -07:00
Marshall Clow
68b26cddbe
Merge branch 'develop' of github.com:boostorg/utility into develop
boost-1.64.0
2017-04-06 07:59:12 -07:00
Marshall Clow
6c4ab93573
Revert change disallowing construction of string_view/string_ref from rvalue string
2017-03-28 15:17:09 +02:00