Boost C++ Libraries: Ticket #1269: boost::to_upper does not handle strings with s-sharps. https://svn.boost.org/trac10/ticket/1269 <p> S sharp ß in upper case is written "SS". Uppercased "weiße" should be "WEISSE", not "WEIßE". </p> <p> boost::to_upper works on strings, and not on single characters like std::toupper(), so it can handle such transformation of s sharp. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/1269 Trac 1.4.3 Pavol Droba Tue, 18 Sep 2007 15:04:14 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/1269#comment:1 https://svn.boost.org/trac10/ticket/1269#comment:1 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">wontfix</span> </li> </ul> <p> I'm not sure if this can be handled this in the scope of the string_algo library. The library doesn't have the actual conversion tables, all the algorithms solely depend on the C++ locales. Locale's ctype&lt;&gt; facet performs the actual conversion in do_toupper method. There is a string variant, but according to standard, it works on per-character basis: </p> <p> <code>charT do_toupper(charT c) const;</code> <code>const charT* do_toupper(charT* low, const charT* high) const;</code> </p> <p> <strong>Effects:</strong> </p> <blockquote> <p> Converts a character or characters to upper case. The second form replaces each character *p in the range [low, high) for which a corresponding upper-case character exists, with that character. </p> </blockquote> <p> <strong>Returns:</strong> </p> <blockquote> <p> The first form returns the corresponding upper-case character if it is known to exist, or its argument if not. The second form returns high. </p> </blockquote> <p> As you can see, the locale function performs the substitution in place on per-character basis. boost::to_upper is consistent with this behavior. </p> <p> Given that, I consider this issue not to be a bug rather a feature. </p> Ticket