diff options
Diffstat (limited to 'host/lib/deps/rpclib/include/rpc/detail/make_unique.h')
-rw-r--r-- | host/lib/deps/rpclib/include/rpc/detail/make_unique.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/host/lib/deps/rpclib/include/rpc/detail/make_unique.h b/host/lib/deps/rpclib/include/rpc/detail/make_unique.h new file mode 100644 index 000000000..1297aeaab --- /dev/null +++ b/host/lib/deps/rpclib/include/rpc/detail/make_unique.h @@ -0,0 +1,31 @@ +#pragma once + +#ifndef MAKE_UNIQUE_H_FOOBAR +#define MAKE_UNIQUE_H_FOOBAR + +#include <memory> + +namespace rpc { +namespace detail { + +// Default behaviour is to assume C++11, overriding RPCLIB_CXX_STANDARD can use +// newer standards: +#if RPCLIB_CXX_STANDARD >= 14 + +using std::make_unique; + +#else + +template<typename T, typename... Ts> +std::unique_ptr<T> make_unique(Ts&&... params) +{ + return std::unique_ptr<T>(new T(std::forward<Ts>(params)...)); +} + +#endif + +} /* detail */ +} /* rpc */ + +#endif /* end of include guard: MAKE_UNIQUE_H_FOOBAR */ + |