aboutsummaryrefslogtreecommitdiff
path: root/src/utilmemory.h
diff options
context:
space:
mode:
authorBen Woosley <ben.woosley@gmail.com>2018-07-12 00:39:40 -0400
committerBen Woosley <ben.woosley@gmail.com>2018-07-17 13:56:21 -0400
commit33539cb34b8f59b65387c142a46744fc83d3ed31 (patch)
treeda44a7b47dcba82cb74aaa4652b14ee153a41d77 /src/utilmemory.h
parent6fcdb5ebdd71b8b0fed3df0fd6aa3639bcb87a0b (diff)
downloadbitcoin-33539cb34b8f59b65387c142a46744fc83d3ed31.tar.xz
Extract MakeUnique into utilmemory.h
And use it to reduce chainparamsbase's direct reliance on util.h to only args handling. utilmemory.h can be replaced with <memory> once we move to C++14.
Diffstat (limited to 'src/utilmemory.h')
-rw-r--r--src/utilmemory.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/utilmemory.h b/src/utilmemory.h
new file mode 100644
index 0000000000..e71fe92284
--- /dev/null
+++ b/src/utilmemory.h
@@ -0,0 +1,19 @@
+// Copyright (c) 2009-2010 Satoshi Nakamoto
+// Copyright (c) 2009-2018 The Bitcoin Core developers
+// Distributed under the MIT software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+#ifndef BITCOIN_UTILMEMORY_H
+#define BITCOIN_UTILMEMORY_H
+
+#include <memory>
+#include <utility>
+
+//! Substitute for C++14 std::make_unique.
+template <typename T, typename... Args>
+std::unique_ptr<T> MakeUnique(Args&&... args)
+{
+ return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
+}
+
+#endif