以下の 3 つのコメント行の実行順序は保証されていますか?
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());
}
私のコンパイラでは、shared_ptr
返された byは afterが呼び出されるf()
まで持続するようです。second()
しかし、これは標準、つまり他のコンパイラによって保証されていますか?