Здрасте. Стандартизирована ли точка выполнения программы, когда вызовутся деструкторы объектов, созданных в процессе вызова функции. То есть вот:
struct X
{
X::~X()
{
cout << "Booo!!!";
}
};
void x(const X&)
{
}
int main()
{
x(X());
cout << "Foo!!!";
return 0;
}
Могу ли я быть уверен, что Boo вызовется раньше, чем Foo!!!? Или каждый компилятор свободен в своем выборе?