brintos

brintos / llvm-project-archived public Read only

0
0
Text · 672 B · 54b2ff5 Raw
23 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s2 3struct S {4  S *p = this; // ok5  decltype(this) q; // expected-error {{invalid use of 'this' outside of a non-static member function}}6 7  int arr[sizeof(this)]; // expected-error {{invalid use of 'this' outside of a non-static member function}}8  int sz = sizeof(this); // ok9 10  typedef auto f() -> decltype(this); // expected-error {{invalid use of 'this' outside of a non-static member function}}11};12 13namespace CaptureThis {14  struct X {15    int n = 10;16    int m = [&]{return n + 1; }();17    int o = [&]{return this->m + 1; }();18    int p = [&]{return [&](int x) { return this->m + x;}(o); }();19  };20  21  X x;22}23