brintos

brintos / llvm-project-archived public Read only

0
0
Text · 914 B · a8b4024 Raw
29 lines · cpp
1// RUN: %clang_cc1 -std=c++11 %s -Wunused -Wno-unused-lambda-capture -verify2 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}} expected-note 2{{candidate}}11 12  // Default constructor13  decltype(lambda1) lambda2; // expected-error{{no matching constructor}}14 15  // Copy assignment operator16  lambda1 = lambda1; // expected-error{{copy assignment operator is implicitly deleted}}17 18  // Move assignment operator19  lambda1 = move(lambda1); // expected-error{{copy assignment operator is implicitly deleted}}20 21  // Copy constructor22  decltype(lambda1) lambda3 = lambda1;23  decltype(lambda1) lambda4(lambda1);24 25  // Move constructor26  decltype(lambda1) lambda5 = move(lambda1);27  decltype(lambda1) lambda6(move(lambda1));28}29