Boost logo

Boost :

Subject: Re: [boost] Formal Review Request: Boost.Convert
From: Vladimir.Batov_at_[hidden]
Date: 2009-02-23 14:38:55


Stewart, Robert wrote...

> I assume that's a reference to me. My suggestion of "conversion" was as
a namespace name.
> Were you referring to my suggestion of using "converter" for the
function object and "convert"
> for the function template that would deduce template parameters?

Yes, I was referring to that latter suggestion of yours:

>> namespace boost
>> {
>> ...class convert;

> s/convert/converter/
...
> template <class TypeOut, class TypeIn>
> TypeOut const
> convert(TypeIn _input, TypeOut const & _default)
> {
> return converter<TypeIn,TypeOut>(_input, _default);
> }

I've essentially implemented function wrappers as you suggested. Only I
called them convert_to() and convert_from() that I am hoping many people
will be happy with (remembering string_to/from et al) as the names could
not be any clearer:

int i = convert_to<int>(str);
int i = convert_from(str, -1);
int i = convert_from<string, double>(str, -1);

That allowed me to keep the function object as "convert" and, say, apply
it to algorithms as

    std::transform(
        strings.begin(),
        strings.end(),
        std::back_inserter(integers),
        convert<string, int>(string(), -1) >> std::hex);

which is kinda nice as well. Do you agree?

Thanks,
Vladimir.


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