【发布时间】:2011-10-19 11:12:27
【问题描述】:
下面三个注释行的执行顺序有保证吗?
struct S
{
S() { /* called 1st */ }
~S() { /* called 3rd */ }
};
boost::shared_ptr<S> f()
{
return boost::shared_ptr<S>(new S);
}
int second() { return 0; /* called 2nd */ }
int test()
{
return (f(), second());
}
使用我的编译器,f() 返回的 shared_ptr 似乎会持续到调用 second() 之后。但这是否由标准以及其他编译器保证?
【问题讨论】:
-
Lifetime of temporaries 的可能重复项
标签: c++ shared-ptr comma