2013-11-15 18 views
3

我只是想在XCode5.0.2使用C++ 11的make_unique功能, 鐺版本make_unique在xcode5中的可用性?

Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn) 

檢查它看起來是不是有後。 make_shared是。

我知道這是C++ 14,但它也是爲C++ 14驗證的第一個函數之一。 甚至在視覺:)。

任何想法何時可用?

謝謝!

回答

5

注意:評論比答案多,但格式化的代碼和評論不混合。

不幸的是,不知道它何時可用;但是你可以自己輕鬆地定義它現在只需切換到後來的標準之一:

template <typename T, typename... Args> 
auto make_unique(Args&&... args) -> std::unique_ptr<T> 
{ 
    return std::unique_ptr<T>(new T(std::forward<Args>(args)...)); 
} 

就是這樣,違背make_shared沒有魔法在這裏,因爲好處是只是一個異常安全的(綁在一起分配和捕獲unique_ptr),而make_shared捆綁其他優勢(與unique_ptr無關)。