re PR c++/47226 ([C++0x] GCC doesn't expand template parameter pack that appears in a lambda-expression)

2017-09-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/47226
	* g++.dg/cpp0x/lambda/lambda-variadic4.C: New.
	* g++.dg/cpp0x/lambda/lambda-variadic5.C: Likewise.

From-SVN: r252064
This commit is contained in:
Paolo Carlini 2017-09-13 09:47:11 +00:00 committed by Paolo Carlini
parent 2fc1f4828b
commit caf3dcdf25
3 changed files with 36 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2017-09-13 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/47226
* g++.dg/cpp0x/lambda/lambda-variadic4.C: New.
* g++.dg/cpp0x/lambda/lambda-variadic5.C: Likewise.
2017-09-13 Richard Biener <rguenther@suse.de>
PR middle-end/82128

View File

@ -0,0 +1,11 @@
// PR c++/47226
// { dg-do compile { target c++11 } }
void slurp(...) { }
template<int ...N>
void print() {
slurp([]() -> int {
(void) N; // or something fancy...
return 0;
}() ...);
}

View File

@ -0,0 +1,19 @@
// PR c++/47226
// { dg-do compile { target c++11 } }
template<class T>
void print(const T&) {}
template<class... T>
void accept_all(T&&...){}
template<class... T>
void print_all(const T&... t)
{
accept_all([&]()->int { print(t); return 0; }...);
}
int main()
{
print_all(1, true, 'a');
}