32 lines
541 B
C
32 lines
541 B
C
|
#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 */
|
||
|
|