[Bug c++/64178] New: rejects-valid on variadic operator++
richard-gccbugzilla at metafoo dot co.uk
gcc-bugzilla@gcc.gnu.org
Thu Dec 4 00:37:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64178
Bug ID: 64178
Summary: rejects-valid on variadic operator++
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: richard-gccbugzilla at metafoo dot co.uk
GCC rejects this code, which I think is valid:
template<typename ...T> void operator++(T...);
struct X {};
void f(X x) { ++x; x++; }
Here, f should call operator++<X> then operator++<X, int>. GCC says:
<stdin>:1:45: error: ‘void operator++(T ...)’ must have an argument of class or
enumerated type
<stdin>:1:75: error: no match for ‘operator++’ (operand type is ‘X’)
<stdin>:1:81: error: no ‘operator++(int)’ declared for postfix ‘++’
[-fpermissive]
More information about the Gcc-bugs
mailing list