Sort includes in C++ files
[babeltrace.git] / src / cpp-common / make-unique.hpp
CommitLineData
fa5e9d57
PP
1/*
2 * Copyright (c) 2022 Philippe Proulx <pproulx@efficios.com>
3 *
4 * SPDX-License-Identifier: MIT
5 */
6
7#ifndef BABELTRACE_CPP_COMMON_MAKE_UNIQUE_HPP
8#define BABELTRACE_CPP_COMMON_MAKE_UNIQUE_HPP
9
10#include <memory>
fa5e9d57 11#include <type_traits>
c802cacb 12#include <utility>
fa5e9d57
PP
13
14namespace bt2_common {
15
16/*
17 * Our implementation of std::make_unique<>() for C++11.
18 */
19template <typename T, typename... ArgTs>
20std::unique_ptr<T> makeUnique(ArgTs&&...args)
21{
22 static_assert(!std::is_array<T>::value, "`T` is not an array (unsupported).");
23
24 return std::unique_ptr<T>(new T {std::forward<ArgTs>(args)...});
25}
26
27} /* namespace bt2_common */
28
29#endif /* BABELTRACE_CPP_COMMON_MAKE_UNIQUE_HPP */
This page took 0.025277 seconds and 4 git commands to generate.