From: Stjepan Rajko (stipe_at_[hidden])
Date: 2008-08-13 16:41:05
On Wed, Aug 13, 2008 at 11:54 AM, David Abrahams <dave_at_[hidden]> wrote:
>> Testing is a good suggestion, but I don't have the time right now to
>> do that :-) I'm not necessarily interested in replicating all
>> Boost.Parameter features. I'm quite happy with the fusion-based
>> solution as a simple one.
> Okay, so what are you trying to accomplish?
Being able to have named parameters and not using Boost.Parameter.
> Well, at the time we redesigned the library, I encouraged Daniel Wallin
> to look into whether we could gain anything by using fusion, because the
> fundamental data structure we use is like a fusion map. He said we
> couldn't gain anything significant, and at the time I took his word for
> it. The entire code corresponding to fusion::map is contained in
> boost/parameter/aux_/arg_list.hpp. The rest of the library consists
> primarily of functionality you're not providing.
>From what you're saying, it could be that our approaches are similar
but using a different map type. Using the fusion-based approach, I
can do this:
// a macro could extend the number of parameters if desired
template<typename FM0, typename FM1>
named_constructable(const FM0 &a0, const FM1 &a1)
// this could be done lazily...
map<field::label, field::size>::type args = a0 & a1;
label = args.at<field::label>();
size = args.at<field::size>();
BOOST_AUTO_TEST_CASE( test_multi_param_construction )
named_constructable constructed(label_ = "hello", size_ = 1);
If our approaches are similar, that would suggest Boost.Parameter
could do the same.
> I'm just saying, if you're going to make comparisons of the two
> libraries, they should be informed comparisons and not speculation.
Well, I tried to make sure that my speculations were qualified as such
(and I consider speculation to be a valid component of discussion).
If my speculations came across as assertions, I apologize.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk