Boost logo

Boost :

Subject: Re: [boost] [nowide] Easy Unicode For Windows: Request For Comments/Preliminary Review
From: Yakov Galka (ybungalobill_at_[hidden])
Date: 2012-05-28 16:53:25


On Mon, May 28, 2012 at 3:33 PM, Artyom Beilis <artyomtnk_at_[hidden]> wrote:

> [...]
> The library provides an implementation of standard C and C++ library
> functions such that their inputs are UTF-8 aware on Windows without
> requiring using Wide API to make program work on Windows.
>

Hi,

I'm happy that this is getting to be proposed to boost.

My comments:

* I find the way you handle the main() arguments elegant.

* I don't like that the convert function is overloaded for both narrow and
wide conversions.
Rationale: Consider the following real-world scenario:

    // Some existing overloaded function, like std::fstream constructor on
dinkumware
    void f(const std::string &s); // 3rd party 'ANSI' codepage
    void f(const std::wstring &s); // 3rd party 'UNICODE'

    std::string str = get_utf8_string();
    f(convert(str)); // we want to call the wide string version

Now during development we may change it to:

    std::wstring str = get_string_from_windows(); // we changed only this
line
    f(convert(str)); // and forgot to change this one. oops...

Solution: This is an error that can be caught at compile time, we just have
to state the intent clearly. Use alternative names? (narrow/widen)

Cheers,

-- 
Yakov

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