
At 12:06 PM +0200 9/17/04, Vukasin Toroman wrote:
On Thursday 16 September 2004 22:34, Michael Rutman wrote:
Here is the case where I need it.
I have a vector<Foo> myFoo.
In a method of Foo I need to see if this instance is in the vector. I want to do this
vector<Foo>::iterator iter = find( myFoo.begin(), myFoo.end(), this );
wouldn't it be better to simply specify a compare functor for your container?
I do not believe so. By that logic a compare functor would have been better than all the other template comparisons already approved. Just as I want to be able to type safely compare two shared_ptr's of different types (subclasses for example) I want to type safely compare the shared_ptr to the raw pointer. As an aside, this came about because the initial reaction was to do the following, which is REALLY bad vector<Foo>::iterator iter = find( myFoo.begin(), myFoo.end(), shard_ptr(this) ); It compiles just fine, then quickly crashes when it leaves scope and deletes this.