Is there a defined order in which local variables are deallocated in C++ (11) ? To be more concise: In which order will side effects of the destructors of two local variables in the same scope become visible?
e.g.:
struct X{
~X(){/*do something*/}
}
int main(){
X x1;
X x2;
return 0;
}
Is x1
or x2
destroyed first when main returns or is the order undefined in C++11?
Within each category of storage classes (except dynamically allocated objects), objects are destructed in the reverse order of construction.