streaming redux
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Tue Dec 28 22:40:47 PST 2010
On 12/28/10 12:07 PM, Sean Kelly wrote:
> Michel Fortin Wrote:
>>
>> So because of all this virtual dispatch and all this rigidity, I think
>> Formatter needs to be rethought a little. My preference obviously goes
>> to satically-typed formatters. But what I'd like to see is something
>> like this:
>>
>> interface Serializable(F) {
>> void writeTo(F formatter);
>> }
>>
>> Any object can implement a serialization for a given formatter by
>> implementing the interface above parametrized with the formatter type.
>
> I like it. There needs to be some way to hold format-specific state
> info for a stream though. I guess this could be done via an external
> hash (stream address to formatter state), but it would be nicer if
> this could be stored in the stream itself somehow.
This design prevents new formatters from working with existing class
hierarchies, unless they themselves obey a hierarchy which undoes the
very advantage of the design.
It also forces the person defining a class hierarchy to statically
commit to a specific formatter for the entire hierarchy.
As a corollary this design forces the designer of a hierarchy to make
early and big decisions.
Andrei
More information about the Digitalmars-d
mailing list