You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
695 B
27 lines
695 B
// Copyright (c) 2017-2019 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_OPTIONAL_H
|
|
#define BITCOIN_OPTIONAL_H
|
|
|
|
#include <utility>
|
|
|
|
#include <boost/optional.hpp>
|
|
|
|
//! Substitute for C++17 std::optional
|
|
template <typename T>
|
|
using Optional = boost::optional<T>;
|
|
|
|
//! Substitute for C++17 std::make_optional
|
|
template <typename T>
|
|
Optional<T> MakeOptional(bool condition, T&& value)
|
|
{
|
|
return boost::make_optional(condition, std::forward<T>(value));
|
|
}
|
|
|
|
//! Substitute for C++17 std::nullopt
|
|
static auto& nullopt = boost::none;
|
|
|
|
#endif // BITCOIN_OPTIONAL_H
|