aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/deps/rpclib/include/rpc/detail/make_unique.h
diff options
context:
space:
mode:
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.h31
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 */
+