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
http://www.boostpro.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk