title: Why does boost::filesystem::path::string() return by value on Windows and by reference on POSIX?
body: <p>From boost/filesystem/path.hpp:</p>
  
  <pre><code>#   ifdef BOOST_WINDOWS_API
      const std::string string() const
      {
        [...]
      }
  #   else   // BOOST_POSIX_API
      //  string_type is std::string, so there is no conversion
      const std::string&amp;  string() const { return m_pathname; }
      [...]
  #   endif
  </code></pre>
  
  <p>For wstring() it is exactly the other way around - returning by reference on Windows and by value on POSIX. Is there an interesting reason for that?</p>