You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
672 B
23 lines
672 B
7 months ago
|
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
|
||
|
|
||
|
struct S {
|
||
|
S *p = this; // ok
|
||
|
decltype(this) q; // expected-error {{invalid use of 'this' outside of a non-static member function}}
|
||
|
|
||
|
int arr[sizeof(this)]; // expected-error {{invalid use of 'this' outside of a non-static member function}}
|
||
|
int sz = sizeof(this); // ok
|
||
|
|
||
|
typedef auto f() -> decltype(this); // expected-error {{invalid use of 'this' outside of a non-static member function}}
|
||
|
};
|
||
|
|
||
|
namespace CaptureThis {
|
||
|
struct X {
|
||
|
int n = 10;
|
||
|
int m = [&]{return n + 1; }();
|
||
|
int o = [&]{return this->m + 1; }();
|
||
|
int p = [&]{return [&](int x) { return this->m + x;}(o); }();
|
||
|
};
|
||
|
|
||
|
X x;
|
||
|
}
|