------- Comment #1 from pinskia at gcc dot gnu dot org 2009-11-13 20:21 ------- I don't think this is a bug. There is an ambiguous in the syntax in figuring out if T() (int()) is a function declaration or a calling the operator() on a newly created T. The C++ standard resolves it as being a function declaration which is why you are getting an error.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42034