【问题标题】:make_unique availability in Xcode5?Xcode5 中的 make_unique 可用性?
【发布时间】:2013-11-28 13:30:26
【问题描述】:

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

什么时候上市?

【问题讨论】:

    标签: c++ c++11 xcode5


    【解决方案1】:

    March 10, 2014 与 Xcode 5.1 和基于 LLVM 3.4svn 的 Clang 完全支持 C++14。见https://clang.llvm.org/cxx_status.html

    【讨论】:

      【解决方案2】:

      注意:更多的是评论而不是答案,但格式化代码和 cmets 不能混用。

      很遗憾,不知道什么时候可以使用;但是您现在可以轻松地自己定义它,稍后再切换到标准:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-25
        • 2014-03-30
        • 1970-01-01
        • 2014-01-23
        • 1970-01-01
        • 2023-04-09
        相关资源
        最近更新 更多