------- Additional Comments From pinskia at gcc dot gnu dot org 2005-09-14 21:23 ------- (In reply to comment #6) > I retract my point of view. This doesn't mean, however, that I'm convinced > that the opposite would be true. But both of those testcases represent "void f(const B<C> &a); ". Here is how I see it: A<T> is instantiated because it is defined as a way too instantiate it and then we reject it as having referencing an incomplete type.
The question here is should we be instantiating A<C>? I saw yes because otherwise we would reject other valid code where A<C> defines a constructor taking double. And the other question is if we instantiate A<C> should we be erroring out, I say yes as there is no part of the standard as far as I can see says we should not error out here. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23227