Boost logo

Boost :

Subject: Re: [boost] [type_erasure] Review started (July 18-27, 2012)
From: Eric Niebler (eric_at_[hidden])
Date: 2012-07-29 18:29:49

On 7/27/2012 8:43 PM, Steven Watanabe wrote:
> On 07/27/2012 12:46 PM, Eric Niebler wrote:
>> Aside: I don't much care for the name "TypeErasure". In purpose, it's
>> much like the proposed Boost.Interface library. And that is closer to
>> how the library is used: to define an interface and build a type that
>> implements it. The fact that it uses a mechanism called "type erasure"
>> to achieve that is really just an implementation detail. Some might feel
>> the word "interface" comes with too much OO baggage, or imply reference
>> semantics. I don't feel that way,

I was hoping you'd also comment on the suggestion "Boost.Interface", but
I guess I didn't explicitly suggest that. I'm suggesting it now.

>> but then you might consider
>> "StaticInterface" or "ValueInterface". Actually, I quite like the latter.
> I'm open to suggestions, but I'm not sure what
> the "Static" in StaticInterface refers to,

I could explain what I was thinking, but better to just let this
suggestion drop.

> and
> I'm also not convinced that ValueInterface really
> appropriate, since the library supports references,
> not just value semantics.

Sure. C++ also supports reference semantics, but value semantics are the
default for the language and most std library components, and for your
library as well. I think value semantics for post-hoc interface-based
polymorphism is THE killer feature of your library, and it's how I
expect it will be used most of the time. I strongly encourage you to
consider the name Boost.ValueInterface or something more descriptive of
the anticipated *usage* of your library, rather than how it's implemented.

That said, it's your baby and of course you're free to call it whatever
you like.

Eric Niebler
BoostPro Computing

Boost list run by bdawes at, gregod at, cpdaniel at, john at