• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
2 
3 struct S {
4   S *p = this; // ok
5   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); // ok
9 };
10 
11 namespace CaptureThis {
12   struct X {
13     int n = 10;
__anonc94837280102CaptureThis::X14     int m = [&]{return n + 1; }();
__anonc94837280202CaptureThis::X15     int o = [&]{return this->m + 1; }();
__anonc94837280402(int x) 16     int p = [&]{return [&](int x) { return this->m + x;}(o); }();
17   };
18 
19   X x;
20 }
21