p19.cpp revision 651f13cea278ec967336033dd032faef0e9fc2ec
1// RUN: %clang_cc1 -std=c++11 %s -Wunused -verify 2 3struct MoveOnly { 4 MoveOnly(MoveOnly&&); 5 MoveOnly(const MoveOnly&); 6}; 7 8template<typename T> T &&move(T&); 9void test_special_member_functions(MoveOnly mo, int i) { 10 auto lambda1 = [i]() { }; // expected-note 2 {{lambda expression begins here}} 11 12 // Default constructor 13 decltype(lambda1) lambda2; // expected-error{{call to implicitly-deleted default constructor of 'decltype(lambda1)' (aka '(lambda}} 14 15 // Copy assignment operator 16 lambda1 = lambda1; // expected-error{{copy assignment operator is implicitly deleted}} 17 18 // Move assignment operator 19 lambda1 = move(lambda1); 20 21 // Copy constructor 22 decltype(lambda1) lambda3 = lambda1; 23 decltype(lambda1) lambda4(lambda1); 24 25 // Move constructor 26 decltype(lambda1) lambda5 = move(lambda1); 27 decltype(lambda1) lambda6(move(lambda1)); 28} 29