struct C {
C(){ printf("C()\n"); }
C( const C& c ) { printf("C(C)\n"); }
};
template< typename T >
struct Initializer {
T t;
Initializer():t(){}
};
template< typename T >
T foo( ){
Initializer<T> i;
printf( "returning\n");
return i.t;
}
int main(){
foo<int>();
foo<C>();
}