https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68204
Bug ID: 68204
Summary: g++ fails to expand a template parameter pack in with
variable templates in a function
Product: gcc
Version: 5.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: morwenn29 at hotmail dot fr
Target Milestone: ---
To be honest, the title fails to accurately describe the problem. Anyway, this
sample does the job nicely:
template<typename... TT>
void eat(TT...) {}
template<typename>
int some_value;
template<typename... TT>
void baz()
{
eat(some_value<TT>...);
}
When trying to compile the previous code, g++ emits the following error:
main.cpp: In function 'void baz()':
main.cpp:10:23: error: expansion pattern 'some_value<TT>' contains no
argument packs
eat(some_value<TT>...);
^
If I'm not mistaken, it should be equivalent to eat(some_value<T>,
some_value<U>, some_value<V>) for some types T, U and V and thus feed a bunch
of integers to eat.