Enlace temporal a referencia constante en la lista de inicializadores de c'tor

La sección 12.2.5 en C ++ 03 dice "Un enlace temporal a un miembro de referencia en un ctor-initializer de constructor (12.6.2) persiste hasta que el constructor sale"
Entonces intenté seguir el programa

#include<iostream>
using namespace std;

struct foo
{
  foo()
  {
    cout<<"foo c'tor"<<endl;
  }
  ~foo()
  {
    cout<<"foo d'tor"<<endl;
  }
};

struct bar
{
  const foo &ref;
  bar():ref(foo()) 
  {
    cout<<"bar c'tor"<<endl;
  }

};

int main()
{
  bar obj;
}    

El resultado que obtengo es:

foo c'tor
foo d'tor
bar c'tor

Ahora, según el estándar, el temporal generado por foo () en c'tor init-list de bar's c'tor se destruirá después de bar's c'tor sofoo d'tor debe imprimirse despuésbar c'tor
pero es al revés.
Por favor explique la razón.

Respuestas a la pregunta(1)

Su respuesta a la pregunta