https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85241
Bug ID: 85241
Summary: Requires-expressions, fold expressions, and member
function templates with dependent parameters don't
play nicely
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: cjdb.ns at gmail dot com
Target Milestone: ---
When declaring a class template with a member function template (that has
dependent types), requires-expressions seem to ignore the dependent types.
The minimal reproduction is available below, with a compiling static_assert
equivalent: https://godbolt.org/g/Vzu5wQ.
* Affects versions: GCC 6, GCC 7, GCC trunk
* Affects platforms: Ubuntu 16.04, MSYS2
* Compiler options: -std=c++17 -fconcepts -Wall -Wextra -Wpedantic -Wconversion
-Werror
* Exact command: g++-7 -Wall -Wextra -Wpedantic -Wconversion -Werror -std=c++17
-fconcepts bad-concept.cpp
* Compiler output:
```
bad-concept.cpp:14:47: required from here
bad-concept.cpp:9:10: error: mismatched argument pack lengths while expanding
‘C<Ts, Us>’
void bar(Us&&...) {}
^~~
```