3

我只是想在 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 验证的第一个函数。它甚至在视觉中:)。

什么时候可以使用?

4

2 回答 2

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)。

于 2013-11-15T09:26:30.067 回答
0

2014 年 3 月 10 日,带有基于 LLVM 3.4svn 的 Clang 的 Xcode 5.1,它具有完整的 C++14 支持。见https://clang.llvm.org/cxx_status.html

于 2018-04-22T10:54:19.590 回答