OSDN Git Service

/cp
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / cpp0x / implicit-trivial1.C
1 // PR c++/46807
2 // { dg-options -std=c++0x }
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 {
9   A() {}
10 private:
11   template <class T> A(T&);     // { dg-error "private" }
12 };
13
14 struct B                        // { dg-error "implicitly deleted|this context" }
15 {
16   mutable A a;
17 };
18
19 int main()
20 {
21   B b;
22   B b2(b);                      // { dg-error "deleted" }
23 }