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.
This commit is contained in:
Ben Woosley
2018-07-12 00:39:40 -04:00
parent 6fcdb5ebdd
commit 33539cb34b
5 changed files with 24 additions and 10 deletions

19
src/utilmemory.h Normal file
View File

@@ -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