Xcode5中的make_unique可用性?

时间:2013-11-15 08:04:25

标签: c++ c++11 xcode5

我只是想在Xcode5.0.2上使用c ++ 11的make_unique函数, Clang版本是

  

Apple LLVM 5.0版(clang-500.2.79)(基于LLVM 3.3svn)

检查后<memory>看起来它不存在。 make_shared是。

我知道这是C ++ 14,但它也是第一个为c ++ 14验证的函数之一。 它甚至在Visual :)中。

何时可以使用?

2 个答案:

答案 0 :(得分: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 1}}捆绑其他优势(与unique_ptr无关)。

答案 1 :(得分:0)

带有Xcode 5.1的

March 10, 2014和基于LLVM 3.4svn的Clang,它具有完整的C ++ 14支持。见https://clang.llvm.org/cxx_status.html