https://gcc.gnu.org/bugzilla/show_bug.cgi?id=76995
Bug ID: 76995 Summary: syntax error Product: gcc Version: 6.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: vanyacpp at gmail dot com Target Milestone: --- GCC shows syntax error on this code. Looks like it disambiguates the expression "(mytype())(args...)" as cstyle-cast although "(args...)" is not a valid cast-expression. struct mytype { template <typename... T> void operator()(T&& ...) const {} }; template <typename... T> void f(T&& ...args) { (mytype())(args...); // error: expected binary operator before ')' token } int main() { f(1, 2, 3); }