Figuring in STL
1. std::auto_ptr
struct A{ ~A(){printf("~A\n");}};
void fun( std::auto_ptr<A> tmp )
{
printf("fun %p size%d\n", &(*tmp), sizeof(tmp));
}
int main(int argc, char const *argv[])
{
std::auto_ptr<A> aptr(new A);
printf("%p\n", &(*aptr));
fun(aptr);
printf("%p\n", &(*aptr)); // 当时试图以%d打印, 引出了POD type的问题
return 0;
}
// one possible out
// 0x9e68008
// fun 0x9e68008 size4
// ~A
// (nil)
auto_ptr 在赋值之后便会转移 ownership。扩展了解 std::unique_ptr, std::shared_ptr。 [C++ 11]版权声明:本文为博主原创文章,未经博主允许不得转载。

浙公网安备 33010602011771号