1 // RUN: %clang_cc1 -std=c++11 %s -Wunused -Wno-unused-lambda-capture -verify 2 3 struct MoveOnly { 4 MoveOnly(MoveOnly&&); 5 MoveOnly(const MoveOnly&); 6 }; 7 8 template<typename T> T &&move(T&); test_special_member_functions(MoveOnly mo,int i)9void test_special_member_functions(MoveOnly mo, int i) { 10 auto lambda1 = [i]() { }; // expected-note 2{{lambda expression begins here}} expected-note 2{{candidate}} 11 12 // Default constructor 13 decltype(lambda1) lambda2; // expected-error{{no matching constructor}} 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); // expected-error{{copy assignment operator is implicitly deleted}} 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