
Many thanks, Gavin. Looking into char_traits<>::to_int_type()... Very little info/explanation... So, seems have to look at the code... std::ctype looks very promising... even has toupper(). Gosh. I hate choices. :-) Thank you for the pointers. Very much appreciated. On 2017-03-21 12:49, Gavin Lambert via Boost wrote:
On 21/03/2017 13:46, Vladimir Batov via Boost wrote:
Thanks, Gavin, indeed I should have a dig in char_traits before re-inventing the wheel. Thanks.
There's also std::ctype
::is(), although the call syntax for that seems a bit more cumbersome. Also at least according to cppreference.com it hasn't been extended for the new 16-bit and 32-bit C++11 char types. I don't know if that means anything. What about iswspace()? Does it have the same problem as std::isspace(), i.e. needs an explicit cast? Seems unlikely...
I think it's probably good practice to use char_traits<>::to_int_type() for that too, since the parameter type is wint_t rather than wchar_t, and that's the "right" way to do that conversion.
As Peter said in practice it probably wouldn't cause any bugs without that since it would be weird for wchar_t to be signed, but as both the sign and size of the type is implementation-defined it's not actually illegal for that to be the case. (And you're even less likely to notice on platforms where wchar_t is 32-bit or larger, but again that's implementation-defined.)
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost