http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20478
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |UNCONFIRMED
Ever Confirmed|1 |0
--- Comment #9 from Jonathan Wakely <redi at gcc dot gnu.org> 2010-12-19
20:55:54 UTC ---
99% of the original code is irrelevant to the parse error. This seems to be a
reasonable approximation of the testcase:
template<typename T>
struct opApi
{
opApi(const char*, int);
};
template<typename T> struct vec { };
typedef int flow;
int deDup(int);
int pop(int, vec<flow>);
int main()
{
opApi<flow> flowApis[2] = {
opApi<flow>("", deDup(
pop(0,
vec<flow>())),
opApi<flow>("", deDup(
pop(0,
vec<flow>())))
};
}
then that can be further reduced to
struct opApi
{
opApi(int);
};
struct vec { };
int deDup(vec);
int main()
{
opApi flowApis[2] = {
opApi(deDup(
vec()),
opApi(deDup(
vec()))
};
}
Current releases don't complain about a missing default constructor (presumably
they stop after the earlier parse error).