07/04/12 19:06:41
下記のコードで
A( 1 )
in block
A( 2 )
~A( 1 )
out block
~A( 2 )
みたいな出力を期待したのですが、違いました。 ばぐですか?
ソース:
struct A {
A(const int id) : id_(id) { cout << "A( " << id << " )" << endl; }
~A() { cout << "~A( " << id_ << " )" << endl; }
int id_;
};
int main() {
boost::shared_ptr<A> a(new A(1));
boost::weak_ptr<A> wa(a);
cout << "in block" << endl;
if( boost::shared_ptr<A> aa = wa.lock() ) {
aa.reset(new A(2));
}
cout << "out block" << endl;
return 0;
}