Boost logo

Boost :

Subject: Re: [boost] [convert] Default Syntax Idea
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2009-02-24 16:36:35


Stewart, Robert wrote:
> I was thinking a bit about syntax for the default value for the
> notional boost::convert() and kin. How about the following:
>
> int const i(3); string const s("something"); int const
> j(convert<int>(s) | 5);
>
> convert<DestType,SourceType>(SourceType) can return a type which
> throws on failure in operator DestType(), but has an operator
> |(SourceType) which returns a second type constructed with the
> SourceType value. The second type provides its own operator
> |(SourceType) which returns that value in its operator DestType() on
> failure.
>
> Returning a default value in lieu of an exception is a special case;
> it ought not be treated like formatting. Thus, while Boost.Parameter
> might be appropriate to package the extra information desired for
> formatting, I don't like the idea of writing "default_ = 5" in the
> call, and I don't think ", 5" in the argument list is as clear as it
> could be. The syntax above is obvious and concise while being
> distinct from whatever may be done for formatting.

That's a nice idea. The default value may indeed be special enough to
support this syntax.


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