This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Rethinking... (Re: RFC: fp printing speedup...)


Jerry Quinn wrote:

> -5- It is unspecified whether the array form of each virtual
> member function calls the single-element virtual overload
> of the same function in a loop, or whether the single
> element form calls the array form with an array of a single
> element with the value of its argument, or whether neither
> form calls the other. In any case, an implementation is not
> permitted to call the other form of any virtual member
> function overridden in a derived class.

There's no way to tell that the virtual member is overridden, is
there? This clause seems to say that neither form may call the other,
period. I think that's what you have to do to solve the infinite
loop, right? If so, how about:

-5- Neither the array nor single-element form of virtual member
function may call the other form.

This seems to me too strong and, if I understand well, would rule out Martin's implementation (toward the end):

http://gcc.gnu.org/ml/libstdc++/2003-11/msg00159.html

;)

To achieve the same result (avoid unexpected endless loops) can't we
just say in -5- that, if one form is overridden, the other must be
(consistently) overridden too or undefined behavior is expected?

Is *this* too strong, in a different way? I don't know, but really,
that 12988 is missing the other form is at the root of the whole
discussion thread, in my opinion...

Paolo.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]