23 lines
766 B
C++
23 lines
766 B
C++
// RUN: %clang_cc1 -fsyntax-only -std=c++1z %s -verify
|
|
|
|
class NonCopyable {
|
|
NonCopyable(const NonCopyable&) = delete; //expected-note3{{explicitly marked deleted here}}
|
|
int x = 10;
|
|
void foo() {
|
|
auto L = [this] { return x; };
|
|
const auto &M = [*this] { return x; };//expected-error{{call to deleted}}
|
|
const auto &M2 = [this] () -> auto&& {
|
|
++x;
|
|
return [*this] { //expected-error{{call to deleted}} expected-warning{{reference to local}}
|
|
return ++x; //expected-error{{read-only}}
|
|
};
|
|
};
|
|
const auto &M3 = [*this] () mutable -> auto&& { //expected-error{{call to deleted}}
|
|
++x;
|
|
return [this] { // expected-warning{{reference to local}}
|
|
return x;
|
|
};
|
|
};
|
|
}
|
|
};
|