title: Would std::basic_string<TCHAR> be preferable to std::wstring on Windows?
body: <p>As I understand it, Windows #defines TCHAR as the correct character type for your application based on the build - so it is <code>wchar_t</code> in UNICODE builds and <code>char</code> otherwise.  </p>
  
  <p>Because of this I wondered if <code>std::basic_string&lt;TCHAR&gt;</code> would be preferable to <code>std::wstring</code>, since the first would theoretically match the character type of the application, whereas the second would always be wide.  </p>
  
  <p>So my question is essentially:  Would <code>std::basic_string&lt;TCHAR&gt;</code> be preferable to <code>std::wstring</code> on Windows?  And, would there be any caveats (i.e. unexpected behavior or side effects) to using <code>std::basic_string&lt;TCHAR&gt;</code>?  Or, should I just use <code>std::wstring</code> on Windows and forget about it?</p>