Commit Graph

20 Commits

Author SHA1 Message Date
Louis Dionne 13c90a5716 [libc++][P0202] Marked algorithms copy/copy_n/copy_if/copy_backward constexpr
Thanks to Michael Park for the patch.

Differential Revision: https://reviews.llvm.org/D68837
2019-11-06 12:02:41 +00:00
Chandler Carruth 57b08b0944 Update more file headers across all of the LLVM projects in the monorepo
to reflect the new license. These used slightly different spellings that
defeated my regular expressions.

We understand that people may be surprised that we're moving the header
entirely to discuss the new license. We checked this carefully with the
Foundation's lawyer and we believe this is the correct approach.

Essentially, all code in the project is now made available by the LLVM
project under our new license, so you will see that the license headers
include that license only. Some of our contributors have contributed
code under our old license, and accordingly, we have retained a copy of
our old license notice in the top-level files in each project and
repository.

llvm-svn: 351648
2019-01-19 10:56:40 +00:00
Marshall Clow f51ee63247 Make next/prev/advance/distance operations on iterators be constexpr. I missed this when I implemented the rest of P0031R0
llvm-svn: 303281
2017-05-17 18:51:36 +00:00
Eric Fiselier 8f56dedb5f Replace _LIBCPP_HAS_NO_DELETED_FUNCTIONS with _LIBCPP_CXX03_LANG
llvm-svn: 291278
2017-01-06 20:58:25 +00:00
Eric Fiselier e7154709e0 Implement C++17 std::sample.
This patch implements the std::sample function added to C++17 from LFTS. It
also removes the std::experimental::sample implementation which now forwards
to std::sample.

llvm-svn: 279948
2016-08-28 22:14:37 +00:00
Eric Fiselier 2fc65041be Implement LWG 2711. Constrain path members.
llvm-svn: 279945
2016-08-28 21:26:01 +00:00
Eric Fiselier d04c685168 Remove trailing whitespace in test suite. Approved by Marshall Clow.
llvm-svn: 271435
2016-06-01 21:35:39 +00:00
Eric Fiselier 71c425f199 Add missing include to test_iterators.h
llvm-svn: 271074
2016-05-27 23:43:29 +00:00
Marshall Clow 64ca6868f5 Got the test backwards in r258279. Fixed that and de-tabbed
llvm-svn: 258281
2016-01-20 03:37:46 +00:00
Marshall Clow 9d10d27c67 Fix up the tests I added for string exceptions to be skipped when exceptions are disabled
llvm-svn: 258279
2016-01-20 03:19:15 +00:00
Marshall Clow 76b4afc040 Fix PR#25973 : 'basic_string::assign(InputIt, InputIt) doesn't provide the strong exception safety guarantee'. This turned out to be a pervasive problem in <string>, which required a fair amount of rework. Add in an optimization for when iterators provide noexcept increment/comparison/assignment/dereference (which covers many of the iterators in libc++). Reviewed as http://reviews.llvm.org/D15862
llvm-svn: 257682
2016-01-13 21:54:34 +00:00
Marshall Clow e9ad58a76e Since Eric poisoned the comma operator on all our test iterators, we no longer need 'comma_iterator'. Remove it from the test suite.
llvm-svn: 222238
2014-11-18 16:15:00 +00:00
Eric Fiselier 847ee13171 Fix use of operator comma in is_permutation and delete comma operator for test iterators.
The comma operators in the test iterators give better error messages when they
are deleted as opposed to not defined. Delete these functions when possible.

llvm-svn: 220715
2014-10-27 20:26:25 +00:00
Eric Fiselier 910285b238 [libcxx] Fix use of operator comma where the types can be user defined
Summary:
An evil user might overload operator comma. Use a void cast to make sure any user overload is not selected.
Modify all the test iterators to define operator comma. 

Reviewers: danalbert, mclow.lists

Reviewed By: mclow.lists

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D5929

llvm-svn: 220706
2014-10-27 19:28:20 +00:00
Marshall Clow 29298664d9 Add include of <cassert> for the operator comma
llvm-svn: 217938
2014-09-17 04:09:35 +00:00
Marshall Clow f1e473bad9 Create a 'comma_iterator' class that overloads operator, and asserts when it's called. Add tests to mismatch to make sure it can't be blindsided by such an evil iterator. More tests for other algorithms forthcoming. Thanks to STL for pointing this out at CppCon and Yakov Galka for opening LWG issue #2133
llvm-svn: 217902
2014-09-16 20:38:11 +00:00
Marshall Clow 354d39cabc Add license headers to a bunch of libc++ files that were missing them. No functionality change. Fixes 18291. Thanks to Nico for the bug report and the patch.
llvm-svn: 199400
2014-01-16 16:58:45 +00:00
Howard Hinnant e0fe3d2e96 War on tabs.
llvm-svn: 185865
2013-07-08 21:06:38 +00:00
Marshall Clow 4476100a2f Made test output iterators have value_type of 'void'; matches ones in library
llvm-svn: 171980
2013-01-09 17:20:02 +00:00
Marshall Clow 322270842c Move common header files into a 'support' directory; make 'testit' include -I to that directory; rename 'iterators.h' to 'iterator_test.h'; remove hard-coded paths to include files from more than 350 source files
llvm-svn: 171594
2013-01-05 03:21:01 +00:00