Следующий код печатает один, два, три. Это верно и верно для всех компиляторов С++?
class Foo
{
      const char* m_name;
public:
      Foo(const char* name) : m_name(name) {}
      ~Foo() { printf("%s\n", m_name); }
};
void main()
{
      Foo foo("three");
      Foo("one");   // un-named object
      printf("two\n");
}