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]
版权声明:本文为博主原创文章,未经博主允许不得转载。