Ссылка на временный объект в параметрах по умолчанию
Подскажите, пожалуйста, Почему здесь не образовывается висячей ссылки? Если я что-то то вывожу в деструкторе, то она печатается после выхода из функции.
template<typename T>
struct Wrapper
{
Wrapper() :w() {}
operator T&() const {return const_cast<T&>(w) ;}
private:
T m;
};
struct A
{
A() :p(new int(1)) {}
int* p;
}
void foo(A& a= Wrapper<A>()){...}