Revert "Merge to upstream r304942."

This reverts commit 83b1388ecd, reversing
changes made to f20819f925.

Test: treehugger
Bug: None
This commit is contained in:
Dan Albert
2018-01-11 10:41:39 -08:00
parent ef7d5b4347
commit 38a0d5af7e
1110 changed files with 15077 additions and 19371 deletions

View File

@@ -16,9 +16,10 @@
#include <algorithm>
#include <cassert>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
#include <memory>
#endif
#include "test_macros.h"
#include "test_iterators.h"
template <class InIter, class OutIter>
@@ -37,7 +38,8 @@ test()
assert(ia[i] == ib[i]);
}
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class InIter, class OutIter>
void
test1()
@@ -53,7 +55,8 @@ test1()
for (unsigned i = 0; i < N; ++i)
assert(*ib[i] == static_cast<int>(i));
}
#endif
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
int main()
{
@@ -92,7 +95,7 @@ int main()
test<const int*, random_access_iterator<int*> >();
test<const int*, int*>();
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
test1<input_iterator<std::unique_ptr<int>*>, output_iterator<std::unique_ptr<int>*> >();
test1<input_iterator<std::unique_ptr<int>*>, input_iterator<std::unique_ptr<int>*> >();
test1<input_iterator<std::unique_ptr<int>*>, forward_iterator<std::unique_ptr<int>*> >();
@@ -127,5 +130,5 @@ int main()
test1<std::unique_ptr<int>*, bidirectional_iterator<std::unique_ptr<int>*> >();
test1<std::unique_ptr<int>*, random_access_iterator<std::unique_ptr<int>*> >();
test1<std::unique_ptr<int>*, std::unique_ptr<int>*>();
#endif // TEST_STD_VER >= 11
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
}

View File

@@ -16,9 +16,10 @@
#include <algorithm>
#include <cassert>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
#include <memory>
#endif
#include "test_macros.h"
#include "test_iterators.h"
template <class InIter, class OutIter>
@@ -37,7 +38,8 @@ test()
assert(ia[i] == ib[i]);
}
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class InIter, class OutIter>
void
test1()
@@ -53,7 +55,8 @@ test1()
for (unsigned i = 0; i < N; ++i)
assert(*ib[i] == static_cast<int>(i));
}
#endif
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
int main()
{
@@ -69,7 +72,7 @@ int main()
test<const int*, random_access_iterator<int*> >();
test<const int*, int*>();
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
test1<bidirectional_iterator<std::unique_ptr<int>*>, bidirectional_iterator<std::unique_ptr<int>*> >();
test1<bidirectional_iterator<std::unique_ptr<int>*>, random_access_iterator<std::unique_ptr<int>*> >();
test1<bidirectional_iterator<std::unique_ptr<int>*>, std::unique_ptr<int>*>();
@@ -81,5 +84,5 @@ int main()
test1<std::unique_ptr<int>*, bidirectional_iterator<std::unique_ptr<int>*> >();
test1<std::unique_ptr<int>*, random_access_iterator<std::unique_ptr<int>*> >();
test1<std::unique_ptr<int>*, std::unique_ptr<int>*>();
#endif // TEST_STD_VER >= 11
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
}

View File

@@ -17,7 +17,9 @@
#include <algorithm>
#include <cassert>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
#include <memory>
#endif
#include "test_iterators.h"

View File

@@ -8,7 +8,6 @@
//===----------------------------------------------------------------------===//
// <algorithm>
// REQUIRES: c++98 || c++03 || c++11 || c++14
// template<RandomAccessIterator Iter>
// requires ShuffleIterator<Iter>

View File

@@ -8,7 +8,6 @@
//===----------------------------------------------------------------------===//
// <algorithm>
// REQUIRES: c++98 || c++03 || c++11 || c++14
// template<RandomAccessIterator Iter, Callable<auto, Iter::difference_type> Rand>
// requires ShuffleIterator<Iter>

View File

@@ -17,9 +17,10 @@
#include <algorithm>
#include <cassert>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
#include <memory>
#endif
#include "test_macros.h"
#include "test_iterators.h"
template <class Iter>
@@ -38,7 +39,8 @@ test()
assert(ia[5] == 4);
}
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class Iter>
void
test1()
@@ -60,7 +62,8 @@ test1()
assert(*ia[4] == 3);
assert(*ia[5] == 4);
}
#endif // TEST_STD_VER >= 11
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
int main()
{
@@ -69,10 +72,12 @@ int main()
test<random_access_iterator<int*> >();
test<int*>();
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
test1<forward_iterator<std::unique_ptr<int>*> >();
test1<bidirectional_iterator<std::unique_ptr<int>*> >();
test1<random_access_iterator<std::unique_ptr<int>*> >();
test1<std::unique_ptr<int>*>();
#endif // TEST_STD_VER >= 11
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
}

View File

@@ -21,8 +21,6 @@
#include "test_iterators.h"
bool equalToTwo(int v) { return v == 2; }
template <class InIter, class OutIter>
void
test()
@@ -30,8 +28,8 @@ test()
int ia[] = {0, 1, 2, 3, 4, 2, 3, 4, 2};
const unsigned sa = sizeof(ia)/sizeof(ia[0]);
int ib[sa];
OutIter r = std::remove_copy_if(InIter(ia), InIter(ia+sa),
OutIter(ib), equalToTwo);
OutIter r = std::remove_copy_if(InIter(ia), InIter(ia+sa), OutIter(ib),
std::bind2nd(std::equal_to<int>(), 2));
assert(base(r) == ib + sa-3);
assert(ib[0] == 0);
assert(ib[1] == 1);

View File

@@ -18,9 +18,10 @@
#include <algorithm>
#include <functional>
#include <cassert>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
#include <memory>
#endif
#include "test_macros.h"
#include "test_iterators.h"
#include "counting_predicates.hpp"
@@ -45,7 +46,8 @@ test()
assert(cp.count() == sa);
}
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
struct pred
{
bool operator()(const std::unique_ptr<int>& i) {return *i == 2;}
@@ -75,7 +77,8 @@ test1()
assert(*ia[4] == 3);
assert(*ia[5] == 4);
}
#endif // TEST_STD_VER >= 11
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
int main()
{
@@ -84,10 +87,12 @@ int main()
test<random_access_iterator<int*> >();
test<int*>();
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
test1<forward_iterator<std::unique_ptr<int>*> >();
test1<bidirectional_iterator<std::unique_ptr<int>*> >();
test1<random_access_iterator<std::unique_ptr<int>*> >();
test1<std::unique_ptr<int>*>();
#endif // TEST_STD_VER >= 11
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
}

View File

@@ -23,8 +23,6 @@
#include "test_iterators.h"
bool equalToTwo(int v) { return v == 2; }
template <class InIter, class OutIter>
void
test()
@@ -32,8 +30,8 @@ test()
int ia[] = {0, 1, 2, 3, 4};
const unsigned sa = sizeof(ia)/sizeof(ia[0]);
int ib[sa] = {0};
OutIter r = std::replace_copy_if(InIter(ia), InIter(ia+sa),
OutIter(ib), equalToTwo, 5);
OutIter r = std::replace_copy_if(InIter(ia), InIter(ia+sa), OutIter(ib),
std::bind2nd(std::equal_to<int>(), 2), 5);
assert(base(r) == ib + sa);
assert(ib[0] == 0);
assert(ib[1] == 1);

View File

@@ -22,15 +22,13 @@
#include "test_iterators.h"
bool equalToTwo(int v) { return v == 2; }
template <class Iter>
void
test()
{
int ia[] = {0, 1, 2, 3, 4};
const unsigned sa = sizeof(ia)/sizeof(ia[0]);
std::replace_if(Iter(ia), Iter(ia+sa), equalToTwo, 5);
std::replace_if(Iter(ia), Iter(ia+sa), std::bind2nd(std::equal_to<int>(), 2), 5);
assert(ia[0] == 0);
assert(ia[1] == 1);
assert(ia[2] == 5);

View File

@@ -16,9 +16,10 @@
#include <algorithm>
#include <cassert>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
#include <memory>
#endif
#include "test_macros.h"
#include "test_iterators.h"
template<class Iter1, class Iter2>
@@ -37,7 +38,8 @@ test()
assert(j[2] == 3);
}
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
template<class Iter1, class Iter2>
void
test1()
@@ -57,7 +59,8 @@ test1()
assert(*j[1] == 2);
assert(*j[2] == 3);
}
#endif // TEST_STD_VER >= 11
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
void test2()
{
@@ -128,7 +131,8 @@ int main()
test<int*, random_access_iterator<int*> >();
test<int*, int*>();
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
test1<forward_iterator<std::unique_ptr<int>*>, forward_iterator<std::unique_ptr<int>*> >();
test1<forward_iterator<std::unique_ptr<int>*>, bidirectional_iterator<std::unique_ptr<int>*> >();
test1<forward_iterator<std::unique_ptr<int>*>, random_access_iterator<std::unique_ptr<int>*> >();
@@ -148,7 +152,8 @@ int main()
test1<std::unique_ptr<int>*, bidirectional_iterator<std::unique_ptr<int>*> >();
test1<std::unique_ptr<int>*, random_access_iterator<std::unique_ptr<int>*> >();
test1<std::unique_ptr<int>*, std::unique_ptr<int>*>();
#endif // TEST_STD_VER >= 11
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
test2();
}

View File

@@ -21,8 +21,6 @@
#include "test_iterators.h"
int plusOne(int v) { return v + 1; }
template <class InIter, class OutIter>
void
test()
@@ -30,8 +28,8 @@ test()
int ia[] = {0, 1, 2, 3, 4};
const unsigned sa = sizeof(ia)/sizeof(ia[0]);
int ib[sa] = {0};
OutIter r = std::transform(InIter(ia), InIter(ia+sa),
OutIter(ib), plusOne);
OutIter r = std::transform(InIter(ia), InIter(ia+sa), OutIter(ib),
std::bind2nd(std::plus<int>(), 1));
assert(base(r) == ib + sa);
assert(ib[0] == 1);
assert(ib[1] == 2);

View File

@@ -17,9 +17,10 @@
#include <algorithm>
#include <cassert>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
#include <memory>
#endif
#include "test_macros.h"
#include "test_iterators.h"
template <class Iter>
@@ -83,7 +84,7 @@ test()
assert(ii[2] == 2);
}
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
struct do_nothing
{
@@ -167,7 +168,8 @@ test1()
assert(*ii[1] == 1);
assert(*ii[2] == 2);
}
#endif // TEST_STD_VER >= 11
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
int main()
{
@@ -176,10 +178,12 @@ int main()
test<random_access_iterator<int*> >();
test<int*>();
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
test1<forward_iterator<Ptr*> >();
test1<bidirectional_iterator<Ptr*> >();
test1<random_access_iterator<Ptr*> >();
test1<Ptr*>();
#endif
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
}

View File

@@ -17,9 +17,10 @@
#include <algorithm>
#include <cassert>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
#include <memory>
#endif
#include "test_macros.h"
#include "test_iterators.h"
struct count_equal
@@ -109,7 +110,7 @@ test()
assert(count_equal::count == si-1);
}
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
struct do_nothing
{
@@ -209,7 +210,8 @@ test1()
assert(*ii[2] == 2);
assert(count_equal::count == si-1);
}
#endif // TEST_STD_VER >= 11
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
int main()
{
@@ -218,10 +220,12 @@ int main()
test<random_access_iterator<int*> >();
test<int*>();
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
test1<forward_iterator<Ptr*> >();
test1<bidirectional_iterator<Ptr*> >();
test1<random_access_iterator<Ptr*> >();
test1<Ptr*>();
#endif
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
}

View File

@@ -20,24 +20,17 @@
#include "test_iterators.h"
struct eq {
eq (int val) : v(val) {}
bool operator () (int v2) const { return v == v2; }
int v;
};
int main()
{
int ia[] = {0, 1, 2, 2, 0, 1, 2, 3};
const unsigned sa = sizeof(ia)/sizeof(ia[0]);
assert(std::count_if(input_iterator<const int*>(ia),
input_iterator<const int*>(ia + sa),
eq(2)) == 3);
std::bind2nd(std::equal_to<int>(),2)) == 3);
assert(std::count_if(input_iterator<const int*>(ia),
input_iterator<const int*>(ia + sa),
eq(7)) == 0);
std::bind2nd(std::equal_to<int>(),7)) == 0);
assert(std::count_if(input_iterator<const int*>(ia),
input_iterator<const int*>(ia),
eq(2)) == 0);
std::bind2nd(std::equal_to<int>(),2)) == 0);
}

View File

@@ -20,22 +20,16 @@
#include "test_iterators.h"
struct eq {
eq (int val) : v(val) {}
bool operator () (int v2) const { return v == v2; }
int v;
};
int main()
{
int ia[] = {0, 1, 2, 3, 4, 5};
const unsigned s = sizeof(ia)/sizeof(ia[0]);
input_iterator<const int*> r = std::find_if(input_iterator<const int*>(ia),
input_iterator<const int*>(ia+s),
eq(3));
std::bind2nd(std::equal_to<int>(), 3));
assert(*r == 3);
r = std::find_if(input_iterator<const int*>(ia),
input_iterator<const int*>(ia+s),
eq(10));
std::bind2nd(std::equal_to<int>(), 10));
assert(r == input_iterator<const int*>(ia+s));
}

View File

@@ -20,23 +20,16 @@
#include "test_iterators.h"
struct ne {
ne (int val) : v(val) {}
bool operator () (int v2) const { return v != v2; }
int v;
};
int main()
{
int ia[] = {0, 1, 2, 3, 4, 5};
const unsigned s = sizeof(ia)/sizeof(ia[0]);
input_iterator<const int*> r = std::find_if_not(input_iterator<const int*>(ia),
input_iterator<const int*>(ia+s),
ne(3));
std::bind2nd(std::not_equal_to<int>(), 3));
assert(*r == 3);
r = std::find_if_not(input_iterator<const int*>(ia),
input_iterator<const int*>(ia+s),
ne(10));
std::bind2nd(std::not_equal_to<int>(), 10));
assert(r == input_iterator<const int*>(ia+s));
}

View File

@@ -1,61 +0,0 @@
//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is dual licensed under the MIT and the University of Illinois Open
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// <algorithm>
// UNSUPPORTED: c++98, c++03, c++11, c++14
// template<class InputIterator, class Size, class Function>
// InputIterator for_each_n(InputIterator first, Size n, Function f);
#include <algorithm>
#include <cassert>
#include "test_iterators.h"
struct for_each_test
{
for_each_test(int c) : count(c) {}
int count;
void operator()(int& i) {++i; ++count;}
};
int main()
{
typedef input_iterator<int*> Iter;
int ia[] = {0, 1, 2, 3, 4, 5};
const unsigned s = sizeof(ia)/sizeof(ia[0]);
{
auto f = for_each_test(0);
Iter it = std::for_each_n(Iter(ia), 0, std::ref(f));
assert(it == Iter(ia));
assert(f.count == 0);
}
{
auto f = for_each_test(0);
Iter it = std::for_each_n(Iter(ia), s, std::ref(f));
assert(it == Iter(ia+s));
assert(f.count == s);
for (unsigned i = 0; i < s; ++i)
assert(ia[i] == static_cast<int>(i+1));
}
{
auto f = for_each_test(0);
Iter it = std::for_each_n(Iter(ia), 1, std::ref(f));
assert(it == Iter(ia+1));
assert(f.count == 1);
for (unsigned i = 0; i < 1; ++i)
assert(ia[i] == static_cast<int>(i+2));
}
}

View File

@@ -18,9 +18,9 @@
#include <functional>
#include <random>
#include <cassert>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
#include <memory>
#include "test_macros.h"
struct indirect_less
{
@@ -29,6 +29,7 @@ struct indirect_less
{return *x < *y;}
};
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
std::mt19937 randomness;
@@ -52,7 +53,7 @@ int main()
{
test(1000);
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
{
const int N = 1000;
std::unique_ptr<int>* ia = new std::unique_ptr<int> [N];
@@ -67,5 +68,5 @@ int main()
}
delete [] ia;
}
#endif
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
}

View File

@@ -19,10 +19,9 @@
#include <functional>
#include <random>
#include <cassert>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
#include <memory>
#include "test_macros.h"
struct indirect_less
{
template <class P>
@@ -30,6 +29,8 @@ struct indirect_less
{return *x < *y;}
};
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
std::mt19937 randomness;
void test(int N)
@@ -50,7 +51,7 @@ int main()
{
test(1000);
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
{
const int N = 1000;
std::unique_ptr<int>* ia = new std::unique_ptr<int> [N];
@@ -64,5 +65,5 @@ int main()
}
delete [] ia;
}
#endif
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
}

View File

@@ -18,10 +18,9 @@
#include <functional>
#include <random>
#include <cassert>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
#include <memory>
#include "test_macros.h"
struct indirect_less
{
template <class P>
@@ -29,6 +28,8 @@ struct indirect_less
{return *x < *y;}
};
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
std::mt19937 randomness;
void test(int N)
@@ -52,7 +53,7 @@ int main()
test(10);
test(1000);
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
{
const int N = 1000;
std::unique_ptr<int>* ia = new std::unique_ptr<int> [N];
@@ -64,5 +65,5 @@ int main()
assert(std::is_sorted(ia, ia+N, indirect_less()));
delete [] ia;
}
#endif
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
}

View File

@@ -21,10 +21,9 @@
#include <random>
#include <cassert>
#include <cstddef>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
#include <memory>
#include "test_macros.h"
struct indirect_less
{
template <class P>
@@ -32,6 +31,8 @@ struct indirect_less
{return *x < *y;}
};
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
std::mt19937 randomness;
void
@@ -77,7 +78,7 @@ int main()
test(1000);
test(1009);
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
{
std::vector<std::unique_ptr<int> > v(1000);
for (int i = 0; static_cast<std::size_t>(i) < v.size(); ++i)
@@ -85,5 +86,5 @@ int main()
std::nth_element(v.begin(), v.begin() + v.size()/2, v.end(), indirect_less());
assert(static_cast<std::size_t>(*v[v.size()/2]) == v.size()/2);
}
#endif
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
}

View File

@@ -21,10 +21,9 @@
#include <random>
#include <cassert>
#include <cstddef>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
#include <memory>
#include "test_macros.h"
struct indirect_less
{
template <class P>
@@ -32,6 +31,8 @@ struct indirect_less
{return *x < *y;}
};
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
std::mt19937 randomness;
void
@@ -83,7 +84,7 @@ int main()
test_larger_sorts(1009);
}
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
{
std::vector<std::unique_ptr<int> > v(1000);
for (int i = 0; static_cast<std::size_t>(i) < v.size(); ++i)
@@ -92,5 +93,5 @@ int main()
for (int i = 0; static_cast<std::size_t>(i) < v.size()/2; ++i)
assert(*v[i] == i);
}
#endif
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
}

View File

@@ -20,10 +20,9 @@
#include <vector>
#include <cassert>
#include <cstddef>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
#include <memory>
#include "test_macros.h"
struct indirect_less
{
template <class P>
@@ -31,6 +30,8 @@ struct indirect_less
{return *x < *y;}
};
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
int main()
{
{
@@ -42,7 +43,7 @@ int main()
assert(std::is_sorted(v.begin(), v.end()));
}
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
{
std::vector<std::unique_ptr<int> > v(1000);
for (int i = 0; static_cast<std::size_t>(i) < v.size(); ++i)
@@ -53,5 +54,5 @@ int main()
assert(*v[1] == 1);
assert(*v[2] == 2);
}
#endif
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
}

View File

@@ -21,10 +21,9 @@
#include <random>
#include <cassert>
#include <cstddef>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
#include <memory>
#include "test_macros.h"
struct indirect_less
{
template <class P>
@@ -32,6 +31,8 @@ struct indirect_less
{return *x < *y;}
};
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
std::mt19937 randomness;
struct first_only
@@ -71,7 +72,7 @@ int main()
{
test();
#if TEST_STD_VER >= 11
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
{
std::vector<std::unique_ptr<int> > v(1000);
for (int i = 0; static_cast<std::size_t>(i) < v.size(); ++i)
@@ -82,5 +83,5 @@ int main()
assert(*v[1] == 1);
assert(*v[2] == 2);
}
#endif
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
}