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, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk