Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this8.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
comparison
equal
deleted
inserted
replaced
111:04ced10e8804 | 131:84e7813d76e9 |
---|---|
4 #include <functional> | 4 #include <functional> |
5 | 5 |
6 struct test { | 6 struct test { |
7 template<typename T> | 7 template<typename T> |
8 std::function<void()> broken(int x) { | 8 std::function<void()> broken(int x) { |
9 return [=] { +x; print<T>(); }; | 9 return [=] { +x; print<T>(); }; // { dg-warning "implicit capture" "" { target c++2a } } |
10 } | 10 } |
11 | 11 |
12 std::function<void()> works0() { | 12 std::function<void()> works0() { |
13 return [=] { print<int>(); }; | 13 return [=] { print<int>(); }; // { dg-warning "implicit capture" "" { target c++2a } } |
14 } | 14 } |
15 | 15 |
16 template<typename T> | 16 template<typename T> |
17 std::function<void()> works1() { | 17 std::function<void()> works1() { |
18 return [=] { print<int>(); }; | 18 return [=] { print<int>(); }; // { dg-warning "implicit capture" "" { target c++2a } } |
19 } | 19 } |
20 | 20 |
21 template<typename T> | 21 template<typename T> |
22 std::function<void()> works2() { | 22 std::function<void()> works2() { |
23 return [=] { this->print<T>(); }; | 23 return [=] { this->print<T>(); }; // { dg-warning "implicit capture" "" { target c++2a } } |
24 } | 24 } |
25 | 25 |
26 template<typename T> | 26 template<typename T> |
27 void print() { if (this == 0) __builtin_abort (); } | 27 void print() { if (this == 0) __builtin_abort (); } |
28 }; | 28 }; |