| 12345678910111213141516171819202122 |
- // 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;
- }
|