//如果gcc 小於6.1 不支持c++14 那麼make_unique不支持, 自定義個一個也是可以玩的
#ifdef __GNUC__
#ifdef __GNUC_MINOR__
#if ((__GNUC__ < 6)) || ((__GNUC__ == 6) && (__GNUC_MINOR__<2))
namespace std
{
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
#endif // __GNUC_MINOR__
#endif // __GNUC__
問題的原因是make_unique爲C++14才特有的, 如果使用小於6.2得gcc編譯就會報錯, vs2015 msvc 也可以