錯誤:‘make_unique’不是‘std’的成員

//如果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 也可以

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章