diff options
author | Jonas Devlieghere <jonas@devlieghere.com> | 2019-08-16 17:19:57 +0000 |
---|---|---|
committer | Jonas Devlieghere <jonas@devlieghere.com> | 2019-08-16 17:19:57 +0000 |
commit | 7e106445efddf4bc2f4c2cb0c798f51c6773def0 (patch) | |
tree | 5ade72cc9cfc3ab292ff7402fc9d810e51ad0900 | |
parent | ea0ace75e03466d3ee32433828ecb8a780cb5925 (diff) | |
download | bcm5719-llvm-7e106445efddf4bc2f4c2cb0c798f51c6773def0.tar.gz bcm5719-llvm-7e106445efddf4bc2f4c2cb0c798f51c6773def0.zip |
[ADT] Remove llvm::make_unique utility.
All uses of llvm::make_unique should have been replaced with
std::make_unique. This patch represents the last part of the migration
and removes the utility from LLVM.
Differential revision: https://reviews.llvm.org/D66259
llvm-svn: 369130
-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)}; |