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]

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted @ 2013-03-14 11:51  J.Way.C  阅读(94)  评论(0编辑  收藏  举报