1 // { dg-do compile { target c++11 } }
2 // { dg-skip-if "requires hosted libstdc++ for cassert" { ! hostedlib } }
6 int move_construct = 0;
9 struct base2 // { dg-message "declares a move" }
12 base2(base2&&) {++move_construct;}
13 base2& operator=(base2&&) {++move_assign; return *this;}
19 base2 b2(b); // { dg-error "deleted" }
20 assert(move_construct == 0);
21 base2 b3(static_cast<base2&&>(b));
22 base2 b4 = static_cast<base2&&>(b);
23 assert(move_construct == 2);
24 b = b2; // { dg-error "deleted" }
25 assert(move_assign == 0);
26 b = static_cast<base2&&>(b2);
27 assert(move_assign == 1);