1 // PR c++/46807
2 // { dg-do compile { target c++11 } }
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++11, we do overload resolution to determine triviality.
6 
7 struct A
8 {
AA9   A() {}
10 private:
11   template <class T> A(T&);	// { dg-message "private" }
12 };
13 
14 struct B			// { dg-error "implicitly deleted|this context" }
15 {
16   mutable A a;
17 };
18 
main()19 int main()
20 {
21   B b;
22   B b2(b);			// { dg-error "deleted" }
23 }
24