David Abrahams wrote:
> "Ed Brey" <[EMAIL PROTECTED]> writes:
> 
>> Eric Friedman wrote:
>>> 
>>>> The area would be helped by renaming extract to access.
>>>  I tend to agree the name is confusing. So shall we call it
>>> boost::access<>? Input?
>> 
>> Dave A.'s comment that access is confusing because it is a noun and a
>> verb is well taken.  Of course, the same can be said for
>> extract. ;-)
> 
> But not as plausibly, IMO.

Agreed.  My comment about extract also being a noun was a joke.  Technicalities aside, 
it is not subject to part of speech confusion the way access is.  Semantic confusion 
still seems like a problem, however.

> Incidentally, no Boost.Python user has reported confusion about
> extract, and they tend to be slightly more naive than the average
> Boost user.

Unfortunately, that data point is of limited use, since Python has a lot of names 
leaving something to be desired (generally those borrowed from C and Unix).  When I 
was a Python newby, insetad of complaining, I just got used to looking up functions in 
the docs to be sure I knew what they did.

>> I agree the issues goes beyond member vs. free.  By the way, what is
>> the motivation for using free over a member function?
> 
> For one thing, the lovely template keyword:
> 
>     var.template extract<T>();
>         ^^^^^^^^^

Let me make sure I undestand the context here: the template keyword is used iff var is 
a template parameter, right?  That seems like a minor use case to me.  It doesn't make 
sense to give up the strong OO correlation that a member function provides just 
because of a keyword in a minor use case.  This is especially true considering that a 
free function could be provided in addition for the template case.

I know the "strong OO correlation" phrase can launch into the debate over whether 
member functions really make for better OO, which I don't want to go into.  I'm just 
looking at existing practice with the standard library container classes.  If you want 
to get a piece of the contents of those containers, you use a member function.


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to