
Thorsten Ottosen wrote:
"Jonathan Turkanis" <technews@kangaroologic.com> wrote in message
First, as much as I love Boost.Range and would like to see it standardized, I don't think the code conversion proposal should use it.
I just assumed that a Range based version was not that far from the iterator version you wanted
I agree. But if it were included in the proposal, wouldn't you have to define the relevant range concepts, as well as begin() and end()? It doesn't seem like the right place to do so.
The second problem is that it's awkard to specify the codecvt instance when you just want a codecvt to be grabbed from the globale locae:
template< class NarrowString, class Range, class Codecvt > inline NarrowString narrow( const Range& r, const Codecvt& = std::use_facet< std::codecvt< typename range_value<Range>::type,
typename range_value<NarrowString>::type,
std::mbstate_t> >( locale::global() ) );
Is it known that function template parameters will be deducible from default function arguments in C++0x?
Perhaps a good solution would be to have overloads, in addition to the ones I showed, with a signature including a codecvt instance, as in your example.
yes.
Ok.
-Thorsten
Jonathan