
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