【问题标题】:Is it compatible to "C++ philosophy" to recode your own smart pointers [closed]重新编码自己的智能指针是否与“C++哲学”兼容[关闭]
【发布时间】:2018-04-03 10:45:54
【问题描述】:

我对所有 C++ 编码人员有一个小问题! 对您来说,重新编码自己的智能指针是否与“C++ 哲学”兼容。 实际上,我将 shared_ptr 和 weak_ptr 用于一个项目,但是代码太复杂了。 我当然可以使用 raw_ptr,但是……它是“普通 c”…… 那么你怎么看呢? 我应该重新编码自己的智能指针还是继续使用 shared_ptr 和 weak_ptr

【问题讨论】:

  • 如果您根据所有权而不是简单的自删除指针来查看智能指针,这可能会有所帮助。谁拥有资源?资源可以只有一个人拥有,还是所有权共享?还是根本不涉及所有权?
  • 您自己的智能指针可以解决shared_ptrunique_ptr 尚未解决的问题?
  • 你应该看到Herb Sutter's lecture。它应该为您很好地整理概念。
  • 究竟是什么让代码变得复杂?智能指针使用起来非常简单。你用对了,你用对了吗?举一个你认为不必要的复杂的例子,在代码中更可取。
  • 这个问题没有前提。您似乎在建议您要编写自己的非智能智能指针,但这是矛盾的,不可能是这样。

标签: c++ shared-ptr smart-pointers weak-ptr


【解决方案1】:

重新编码自己的智能指针是否符合“C++哲学”

不,这是不必要的,而且是浪费时间。标准库提供智能指针,并且标准库在每个符合要求的实现中都可用。

除非您有非常充分的理由不这样做,否则请使用<memory>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 2019-06-30
    相关资源
    最近更新 更多