我只是想在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 :)中。
何时可以使用?
答案 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)
March 10, 2014和基于LLVM 3.4svn的Clang,它具有完整的C ++ 14支持。见https://clang.llvm.org/cxx_status.html