diff options
-rw-r--r-- | llvm/include/llvm/ADT/STLExtras.h | 35 | ||||
-rw-r--r-- | llvm/unittests/ADT/IteratorTest.cpp | 2 |
2 files changed, 1 insertions, 36 deletions
diff --git a/llvm/include/llvm/ADT/STLExtras.h b/llvm/include/llvm/ADT/STLExtras.h index 0e3911424a6..af037098226 100644 --- a/llvm/include/llvm/ADT/STLExtras.h +++ b/llvm/include/llvm/ADT/STLExtras.h @@ -1376,41 +1376,6 @@ void replace(Container &Cont, typename Container::iterator ContIt, // Extra additions to <memory> //===----------------------------------------------------------------------===// -// Implement make_unique according to N3656. - -/// Constructs a `new T()` with the given args and returns a -/// `unique_ptr<T>` which owns the object. -/// -/// Example: -/// -/// auto p = make_unique<int>(); -/// auto p = make_unique<std::tuple<int, int>>(0, 1); -template <class T, class... Args> -typename std::enable_if<!std::is_array<T>::value, std::unique_ptr<T>>::type -make_unique(Args &&... args) { - return std::unique_ptr<T>(new T(std::forward<Args>(args)...)); -} - -/// Constructs a `new T[n]` with the given args and returns a -/// `unique_ptr<T[]>` which owns the object. -/// -/// \param n size of the new array. -/// -/// Example: -/// -/// auto p = make_unique<int[]>(2); // value-initializes the array with 0's. -template <class T> -typename std::enable_if<std::is_array<T>::value && std::extent<T>::value == 0, - std::unique_ptr<T>>::type -make_unique(size_t n) { - return std::unique_ptr<T>(new typename std::remove_extent<T>::type[n]()); -} - -/// This function isn't used and is only here to provide better compile errors. -template <class T, class... Args> -typename std::enable_if<std::extent<T>::value != 0>::type -make_unique(Args &&...) = delete; - struct FreeDeleter { void operator()(void* v) { ::free(v); diff --git a/llvm/unittests/ADT/IteratorTest.cpp b/llvm/unittests/ADT/IteratorTest.cpp index 2f5abb64e7d..73fd15e90e9 100644 --- a/llvm/unittests/ADT/IteratorTest.cpp +++ b/llvm/unittests/ADT/IteratorTest.cpp @@ -209,7 +209,7 @@ TEST(FilterIteratorTest, FunctionPointer) { TEST(FilterIteratorTest, Composition) { auto IsOdd = [](int N) { return N % 2 == 1; }; - std::unique_ptr<int> A[] = {make_unique<int>(0), std::make_unique<int>(1), + std::unique_ptr<int> A[] = {std::make_unique<int>(0), std::make_unique<int>(1), std::make_unique<int>(2), std::make_unique<int>(3), std::make_unique<int>(4), std::make_unique<int>(5), std::make_unique<int>(6)}; |