对于utf8,boost :: algorithm :: to_upper/to_lower ok?boost :: locale没必要吗?

Dan*_*yol 7 c++ string boost internationalization

我在几个地方读到过boost :: algorithm :: to_upper/to_lower对utf8不好:

但是在我的系统上,ubuntu 12.4.1 32位,增强1.46,以及locale en_GB.UTF-8,一切看起来都很好,只要我通过语言环境例如:

std::locale englishUTF8locale("en_GB.UTF-8")
boost::algorithm::to_upper_copy(L"ü", englishUTF8locale) -> L"Ü"
boost::algorithm::to_lower_copy(L"?", englishUTF8locale) ->L"?"
Run Code Online (Sandbox Code Playgroud)

值得注意的是,它在使用std :: wstring时有效,但在使用std :: string时则无效

那么,boost :: locale是不是真的有必要?我的问题是我只能使用boost 1.46,而locale是为1.48创建的