Boost logo

Boost Users :

Subject: Re: [Boost-users] metafunction question
From: John Dlugosz (JDlugosz_at_[hidden])
Date: 2010-05-12 15:02:46


> is your function an algorithm working WITH the container, or is it a
> function providing access to the container's contents?
> when you derive from a standard container without any additional
> state, it's most likely the former.
> for example, there is no std::vector::sort(), only std::sort(vector...)
> (although it seems to me the standard library doesn't draw a clear
> line there either. a lot of the member functions of std::string should
> have been free function algorithms)
>


And, container-specific versions of algorithms are available as member functions, rather than just automatically picking up container-specific form based on the iterator. The reason for that is because the iterators in general don't reference back to the original container. But, with overloading, should there be a container-based find as well as iterator find algorithms, as opposed to find being a member?

His example is called "find", so probably is a member because the plain find functions are also members of various containers. If the std::find was an overloaded non-member, he might "naturally" write his that way too.

--John





TradeStation Group, Inc. is a publicly-traded holding company (NASDAQ GS: TRAD) of three operating subsidiaries, TradeStation Securities, Inc. (Member NYSE, FINRA, SIPC and NFA), TradeStation Technologies, Inc., a trading software and subscription company, and TradeStation Europe Limited, a United Kingdom, FSA-authorized introducing brokerage firm. None of these companies provides trading or investment advice, recommendations or endorsements of any kind. The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net