lez*_*lon 55 c++ pointers unique-ptr c++11
是不是首先std::unique_ptr::get打败了unique_ptr的目的?我本来期望这个函数改变它的状态,所以它不再有指针.是否有实际有用的std :: unique_ptr :: get?
Nik*_*sov 68
每次需要将原始指针传递给C函数时都使用它:
std::unique_ptr<char[]> buffer( new char[1024] );
// ... fill the buffer
int rc = ::write( fd, buffer.get(), len );
Run Code Online (Sandbox Code Playgroud)
bam*_*s53 58
std::unique_ptr安全地提供独特的所有权语义.但是,这并不排除对非拥有指针的需求.std::shared_ptr有一个非拥有对手,std::weak_ptr.原始指针作为std::unique_ptr非拥有对手操作.
Nev*_*vin 29
我倾向于遵循的规则是:如果被叫方没有使用生命/所有权,则不要将其传递给智能指针; 相反,传入原始C++引用(首选)或原始指针.我发现将所有权和使用权的关注分开得更清晰,更灵活.
R. *_*des 17
当你的双手被束缚而你确实需要将指针传递给某物时,p.get()读数要好于&*p.
有一个函数可以改变状态,因此unique_ptr不再存在指针,并且一个命名release.这对于将所有权转移到其他不提供直接构造的智能指针非常有用unique_ptr.任何其他使用都有泄漏资源的风险.