FWIW, Codegear C ++ Builder не разрушает ожидаемый порядок в соответствии со стандартом.
C:\> sample.exe 1 2 Created in foo Created in if Destroyed in foo Destroyed in if
... это еще одна причина не полагаться на порядок уничтожения!