1 // PR c++/46807 2 // { dg-options -std=c++98 } 3 // In C++98/03, B::B(const B&) is trivial because A::A(const A&) is trivial, 4 // even though doing overload resolution would mean calling the template 5 // constructor. In C++0x, we do overload resolution to determine triviality. 6 7 struct A 8 { AA9 A() {} 10 private: 11 template <class T> A(T&); 12 }; 13 14 struct B 15 { 16 mutable A a; 17 }; 18 main()19int main() 20 { 21 B b; 22 B b2(b); 23 } 24