Boost logo

Boost :

From: Gary Powell (Gary.Powell_at_[hidden])
Date: 2001-03-19 12:07:14


>>
> > I think the other case you are missing is
> > bind(&className::MemberFn, classReference/Pointer, arguments);
> >
> > as in bind(&data::foo, f, 1, 2) ==> f->*foo(1,2); // case 6
>
> Yes, I've thought of that as well, just didn't include it in the list.
<<
I just wanted to be sure that you didn't reverse the first two arguments.

>>
> > The only other case we don't handle this way is case #2. I'm not sure I
> > understand what you intend the result of this call to bind to be.
>
> std::for_each(v.begin(), v.end(), bind(&X::f));
>
> bind(&X::f) is basically equivalent to bind(&X::f, _, _, ...) (insert the
> number of arguments to X::f here) - it is a direct replacement to mem_fun
> and mem_fun_ref.
<<
Ok, I think we can do that without much effort. I'll add it to the to-do
list.

>>
> > And that the naming convention for the "free" args that the two
> libraries
> > use is different. (LL has a typedefs for the free args so this isn't
> much
> of
> > an issue for LL.)
>
> _1 is my new favorite. :-) I think that it's much better than free1 or
> arg1.
> The single _ (without a number) is very convenient, too.
<<
We may have to agree to disagree here. Perhaps we could agree on the typedef
names?

Then users can pick the variable names that they prefer. Use of a single "_"
would bring the wrath of my coworkers down on me, not something I'd prefer.

We are currently using typedef names and variables:
namespace {
boost::bind::free1_type free1;
boost::bind::free2_type free2;
boost::bind::free3_type free3;
}

but I'm not "wedded" to the names. However they do appear in our current
documentation so unless there is an overriding reason I'd like to keep them.
(We could provide duplicates for a transition period I suppose.)

-gary-

gary.powell_at_[hidden]


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