>From: "Edward Diener" <[EMAIL PROTECTED]>

> "David Abrahams" <[EMAIL PROTECTED]> wrote in message
> >
> > Oh, it's a problem alright, but I'm still not very convinced of that
> > solution.  The problem with interfaces that have lots of positional
> > parameters is that you forget what the different positions mean.  To
> > solve that problem, you need either named parameters or a
> > position-independent interface.
>
> Since the C++ language already has embraced positional parameters as its
> normal means of passing information to functions, classes, or templates,
it
> is a little disingenuous to complain about them. Every function call is
> essentially a matter of knowing "what the different positions mean". Since
> we are stuck with this metaphor, so to speak, we can at least make the
best
> of it in regard to default parameters with a simple solution.

This issue is also discussed in D&E. When you have ordinary function calls,
you also have the names/values used in the call, to help you understand the
meaning of the parameters. Consider:

Window w=make_window("Title",0,0,100,100,some_flags);

with defaults anywhere in the parameter list, you could get:

Window w=make_window(,,,,,123);

It may be non-trivial to figure out what the number corresponds to, unless
you remember what the preceding parameters are, or look them up.

This was a concern mentioned in D&E, and also what Dave says here.

If you instead used (named parameters): make_window(flags_is(123)), or use
detection by type, as Dave described, it could be easier to see what is
going on.


Regards,

Terje

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to