- What is your evaluation of the design? I had no troubles finding my way. Most APIs are already well known as
This is my review of the proposed Boost.Nowide library. On 06/12/2017 06:20 AM, Frédéric Bron via Boost wrote: they resemble APIs from the standard library. I understand (after reading the discussions on this list) why Nowide does not convert all input to a common encoding on all platforms but only deals with wide strings on Windows. It was a bit of a surprise at first, so this design decision should be documented more prominently as others have already pointed out. In general I like the idea that only valid Unicode is accepted as input, although I had an issue with invalid encoding written to nowide::cout that set the stream's failbit and ignored all subsequent output. The author was already aware of that issue and said invalid characters will be replaced with U+FFFD (invalid character) after the review. I prefer this solution to stopping all output after any failure.
- What is your evaluation of the implementationI did not look at the implementation. It worked as expected/documented when I tested the library.
- What is your evaluation of the documentation? It is enough to start working with the library. I would like to see more clearly for every function when and how input strings are converted to a different encoding and what happens in case of a conversion error (exception, failbit of stream is set, invalid character, etc.).
- What is your evaluation of the potential usefulness of the library?The library is very useful and I intend to use it as a portable fire-and-forget solution to typical Unicode problems on Windows. I think it will be a very helpful library especially when porting software from Posix to Windows, since the library enables dealing with Unicode without dealing with (and first learning about) the Windows Unicode idiosyncrasies. As it came up in the discussion, I do not think I ever encountered non-normalized Unicode file paths on Windows so I do not think the lack of support for such filepaths is detrimental to the usefulness of this library.
- Did you try to use the library? With what compiler? Did you have any > problems? I tested with MSVC14 and had no technical problems building or using the library.
- How much effort did you put into your evaluation? A glance? A quick reading? In-depth study? I read the discussions on the list, the documentation and wrote a small toy program to test my expected usage of Nowide. All in all I invested about three hours.
- Are you knowledgeable about the problem domain? Somewhat. I had to work around typical Unicode issues on Windows multiple times, but always stopped when the issue was solved. So my knowledge is mostly driven by the specific issues I had so far and not profound.
- Do you think the library should be accepted as a Boost library? Yes.
Norbert