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).

Reply via email to