Update to upstream r216384.

This rebase skips the following patches in upstream:

+ 37025e1b32
Make the helper routines in string really be constexpr. This required a
bit of refacoring in algorithm as well. Give them better names while
we're at it. All of these are internal rotines; no visible functionality
change.

+ 164b297099
Implement string_view from the library fundamentals TS (n4023). Also
works in C++11 and 03, with reduced functionality (mostly in the area of
constexpr)

+ e4694b4129
Formatting improvements in the <string_view> synopsis suggested by
RSmith. No functionality change.

+ 3a61b30f3a
Minor cleanup for string_view; mostly from suggestions by Richard Smith.
Also, make the tests pass under c++03

+ 484728789e
string_view enhancements.  Move to the correct namespace. Better
constexpr support (thanks to Richard for the suggestions). Update the
tests to match this. Add <experimental/__config for experimental
macros/etc to live.

+ b1a40264dc
[libcxx] Add <experimental/utility> header for LFTS.

+ 3ee7233c80
[libcxx] expose experimental::erased_type for all standard versions.

+ 67740670f9
NFC. Remove trailing whitespace and tabs.

+ b9536101dc
NFC. Move definition of _LIBCPP_ASSERT into __debug header and remove
external include guards.

+ 98c4e404ca.
Revert "Turn off extern templates for most uses."

Bug: 17255369
Change-Id: I629ff16275d50e4cc8767b253a2c0542468348d8
This commit is contained in:
Dan Albert
2014-08-26 11:20:46 -07:00
parent 3d9e6ba593
commit 90dc8dd841
283 changed files with 4624 additions and 1158 deletions

View File

@@ -23,6 +23,9 @@
#endif
#include "test_iterators.h"
#include "counting_predicates.hpp"
bool equal2 ( int i ) { return i == 2; }
template <class Iter>
void
@@ -30,7 +33,9 @@ test()
{
int ia[] = {0, 1, 2, 3, 4, 2, 3, 4, 2};
const unsigned sa = sizeof(ia)/sizeof(ia[0]);
int* r = std::remove_if(ia, ia+sa, std::bind2nd(std::equal_to<int>(), 2));
// int* r = std::remove_if(ia, ia+sa, std::bind2nd(std::equal_to<int>(), 2));
unary_counting_predicate<bool(*)(int), int> cp(equal2);
int* r = std::remove_if(ia, ia+sa, std::ref(cp));
assert(r == ia + sa-3);
assert(ia[0] == 0);
assert(ia[1] == 1);
@@ -38,6 +43,7 @@ test()
assert(ia[3] == 4);
assert(ia[4] == 3);
assert(ia[5] == 4);
assert(cp.count() == sa);
}
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES