blob: 4e57b74f08a085356eabd9f8ef362f72fb80fdcf (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
// 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
};
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;
}
|