Kis*_*Yoo 0 c++ smart-pointers stdset c++11
在下面的 C++ 调用 reset() 列表、向量、映射中,既没有错误也没有警告。
但是,当我尝试在 set 中执行此操作时,出现错误。
错误消息是 [ 没有匹配的成员函数调用 'reset' ]
为什么会这样???有人可以与社区分享您的知识吗?
std::shared_ptr<int> sp;
sp.reset(new int(11));
sp.reset();
std::map<int, std::shared_ptr<int>> my_map;
for (auto it = my_map.begin(); it != my_map.end(); ++it) {
it->second.reset();
(*it).second.reset();
}
std::list<std::shared_ptr<int>> my_list;
for (auto& x : my_list) {
x.reset();
}
std::vector<std::shared_ptr<int>> my_vec;
for (auto it = my_vec.begin(); it != my_vec.end(); ++it) {
it->reset();
(*it).reset();
}
std::set<std::shared_ptr<int>> my_set;
for (auto& x : my_set) {
x.reset(); // ERROR!!!
}
for (auto it = my_set.begin(); it != my_set.end(); ++it) {
it->reset(); // ERROR!!!
(*it).reset(); // ERROR!!!
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
129 次 |
最近记录: |