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