好吧,所以我最后一次以C++为生,std::auto_ptr所有的std lib都可用,而且boost::shared_ptr风靡一时.我从未真正研究过提供的其他智能指针类型.我知道C++ 11现在提供了一些类型的提升,但不是全部.
那么有人有一个简单的算法来确定何时使用哪个智能指针?优选地包括关于哑指针(诸如原始指针T*)和其他增强智能指针的建议.(像这样的东西会很棒).
我曾经用新的方式在我的C++项目中分配内存
char* buffer = new char [size];
...
delete[] buffer;
Run Code Online (Sandbox Code Playgroud)
我真的很想继续前进并使用unique_ptr,就像这样
unique_ptr<char[]>buffer(new char[size]);
Run Code Online (Sandbox Code Playgroud)
但后来我用istream& get (char* s, streamsize n);它char*作为第一个参数,所以我该怎么办?我试过投射类型,但失败了.我也知道我可以使用vector<char>而不是指针,但我真的不想使用它.谢谢!