title: How to change case of latin UTF-8 strings in C++?
body: <p>In Objective-C, it's dead simple:</p>
  
  <pre><code>NSLog(@"%@", [@"BAÑO" lowercaseString]);  // Outputs "baño".
  </code></pre>
  
  <p><strong>In C++, what's the equivalent?</strong> Can anyone provide valid code for this that produces the same output? Is there a nice STL way to do this without relying on ICU, Boost, or any other 3rd party libs?</p>
  
  <p>My current non-solution is:</p>
  
  <pre><code>using namespace std;
  string s = "BAÑO";
  wstring w(s.begin(), s.end());
  transform(w.begin(), w.end(), w.begin(), towlower);
  // w contains "baÑo"
  </code></pre>