Boost logo

Boost :

From: Daniel Earwicker (daniel.earwicker_at_[hidden])
Date: 2005-11-01 16:04:52


If width and titlebar are instances of unique specializations of
keyword<> then this expression yields an instance of a type that
conforms to the "argument pack" concept:

(width=10, titlebar=false)

However, this expression does not:

(width=10)

In practise users probably take advantage BOOST_PARAMETER_FUN to
declare forwarding functions, so passing a single parameter normally
works fine. So this isn't necessarily a problem, but it might cause
trouble where users attempt to use a raw argument pack without using
boost::parameters<> as a forwarding mechanism.

Assignment to a keyword yields a tagged_argument<>, whereas the comma
operator yields arg_list<>. The latter is a conforming argument pack.

The necessary members could be added to tagged_argument to make it
into a conforming argument pack. Or a simpler solution might be to
remove tagged_argument altogether and just have the assignment return
an arg_list with empty_arg_list as its successor.

--Daniel.


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