代码之家  ›  专栏  ›  技术社区  ›  dimba

auto\u ptr是否已弃用?

  •  74
  • dimba  · 技术社区  · 15 年前
    1. AutoTypTR会在传入C++标准中被否决吗?
    2. 所有权转移是否应该使用唯一的\u ptr而不是共享的\u ptr?
    4 回复  |  直到 15 年前
        1
  •  82
  •   Persixty    7 年前

    std::auto_ptr 已被弃用。这个建议是完全正确的。

    在C++0x中 标准::自动检查 将被否决而赞成 std::unique_ptr . 智能指针的选择将取决于您的用例和需求 标准::唯一\u ptr 在容器内部使用单个所有权的移动语义(使用移动语义)和 std::shared_ptr

    您应该尝试使用最适合这种情况的智能指针,选择正确的指针类型可以让其他程序员深入了解您的设计。

        2
  •  22
  •   R Samuel Klatchko    15 年前

    是的,从今天开始 auto_ptr 将在C++0x中弃用,您应该使用 unique_ptr 相反最新标准草案(n3035)第D.9节

    类模板 自动\u ptr (20.9.10)提供了更好的解决方案。[尾注]

    在标准被批准之前,委员会总是有可能修改这个决定,尽管我觉得这个决定不太可能。

        3
  •  18
  •   Maxime Lorant Ashana.Jackol    10 年前

    不仅如此 auto_ptr 已弃用 in C++11 (D.10, page 1228) in a future version of C++

    采用N4190,实际上删除(不只是贬低)C++标准库中的一些古老的东西,包括 自动\u ptr , bind1st / bind2nd ptr_fun mem_fun / mem_fun_ref , random_shuffle

    关于它的另一个文档: Programming Language C++, Library Evolution Working Group - Document N4190 ,如果您需要更多信息。

    自动\u ptr 自动,通过使用 unique_ptr

    任何使用 自动\u ptr 可机械转换为使用 具有 move() 无论何时插入 正在被“复制”。

        4
  •  2
  •   anon anon    15 年前