[parameter] - arg_list vs. tagged_argument

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.
participants (1)
-
Daniel Earwicker