Explorar o código

cmAlgorithm: Extend cmAppend capabilities

Marc Chevrier %!s(int64=6) %!d(string=hai) anos
pai
achega
101b5288ff
Modificáronse 1 ficheiros con 8 adicións e 0 borrados
  1. 8 0
      Source/cmAlgorithms.h

+ 8 - 0
Source/cmAlgorithms.h

@@ -8,6 +8,7 @@
 #include <algorithm>
 #include <functional>
 #include <iterator>
+#include <memory>
 #include <unordered_set>
 #include <utility>
 #include <vector>
@@ -144,6 +145,13 @@ void cmDeleteAll(Range const& r)
                 ContainerAlgorithms::DefaultDeleter<Range>());
 }
 
+template <typename T>
+void cmAppend(std::vector<T*>& v, std::vector<std::unique_ptr<T>> const& r)
+{
+  std::transform(r.begin(), r.end(), std::back_inserter(v),
+                 [](const std::unique_ptr<T>& item) { return item.get(); });
+}
+
 template <typename T, typename Range>
 void cmAppend(std::vector<T>& v, Range const& r)
 {