title: C++ UNICODE and STL
body: <p>The Windows API seems big on <code>UNICODE</code>, you make a new project in Visual C++ and it sets it to <code>UNICODE</code> by default.<br>
  And me trying to be a good Windows programmer, I want to use <code>UNICODE</code>.</p>
  
  <p>The problem is the C++ Standard Library and STL (such as <i>std::string</i>, or <i>std::runtime_error</i>) don't work well with <code>UNICODE</code> strings.
  I can only pass a <i>std::string</i>, or a <code>char*</code> to <i>std::runtime_error</i>, and i'm pretty sure <i>std::string</i> doesn't support <code>UNICODE</code>.</p>
  
  <p>So my question is, how should I use things such as <i>std::runtime_error</i>? Should I mix <code>UNICODE</code> and regular <code>ANSI</code>? (I think this is a bad idea...)<br>
  Just use <code>ANSI</code> in my whole project? (prefer not..) Or what?</p>