We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
std::unique_ptr
原文:
std::unique_ptr 是一种独占的智能指针,它禁止其他智能指针与其共享同一个对象,从而保证代码的安全: std::unique_ptr<int> pointer = std::make_unique<int>(10); // make_unique 从 C++14 引入 std::unique_ptr<int> pointer2 = pointer; // 非法
std::unique_ptr 是一种独占的智能指针,它禁止其他智能指针与其共享同一个对象,从而保证代码的安全:
std::unique_ptr<int> pointer = std::make_unique<int>(10); // make_unique 从 C++14 引入 std::unique_ptr<int> pointer2 = pointer; // 非法
这里的逻辑经不起推敲,且描述不够好。
The text was updated successfully, but these errors were encountered:
事实上 std::unique_ptr 只能 "一定程度上的" 帮助用户防止内存泄漏, 而 不能保证代码安全, 甚至会在某些情况引入额外的灾难.
不能保证代码安全
首先, C++ 本身无法禁止用户使用同一个指针构造多个智能指针(甚至可以是不同类型的智能指针), 其次, 即使使用 std::make_unique/ std::make_shared 委托构造, 也不能杜绝用户利用该智能指针实际指向的地址再次构造新的智能指针.
所以说粗略的把 "智能指针" 和 "安全" 混为一谈是一种不现实的痴心妄想, 用户不该认为, 或者误导他人可能有这样的 "安全" .
用户不该认为, 或者误导他人可能有这样的 "安全"
Sorry, something went wrong.
大佬 fork 一个单独的版本吧
Thanks and PR welcome
Successfully merging a pull request may close this issue.
原文:
这里的逻辑经不起推敲,且描述不够好。
The text was updated successfully, but these errors were encountered: