title: boost::filesystem::path vs boost::filesystem::wpath
body: <p>Boost lib has a class to deal with file path: <code>boost::filesystem::path</code>.
  Also Boos has this class <code>boost::filesystem::wpath</code></p>
  
  <p>Each class has methods <code>string()</code>, <code>wstring()</code>, <code>c_str()</code>, <code>native()</code></p>
  
  <p>I develop Windows app and I completely do not understand what should I use ))</p>
  
  <p>What is the difference between these two classes from the practical point of view? What is the difference between these methods?</p>
  
  <p>What class and what methods should I use for Windows app? <code>::wpath</code> and <code>wstring()</code> everywhere?</p>
  
  <p>Part of sources (several statically linked libs) will be compiled for Ubuntu. In this situation <code>::wpath</code> still good?</p>
  
  <hr>
  
  <p>Also I use <code>SQLite</code> and it needs path to the database file. <a href="https://www.sqlite.org/c3ref/open.html" rel="noreferrer">sqlite3_open</a>.</p>
  
  <p>I should use <code>sqlite3_open_v2</code> (UTF-8 encoding for the file path) or <code>sqlite3_open16</code> (UTF-16 encoding for the file path) ?</p>
  
  <hr>
  
  <p>P.S. After reading this article <a href="http://theboostcpplibraries.com/boost.filesystem-paths" rel="noreferrer">link</a> seems that <code>::path</code> and <code>::wpath</code> have no difference at all. Is it right?</p>
  
  <p>Method <code>native()</code> seems preferable for the source code that compiled for different platforms.</p>