45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
// Boost.Filesystem mbpath.hpp ---------------------------------------------//
|
|
|
|
// Copyright Beman Dawes 2005
|
|
|
|
// Use, modification, and distribution is subject to the Boost Software
|
|
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
|
// http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
// Encodes wide character paths as MBCS
|
|
// See http://../doc/path.htm#mbpath for more information
|
|
|
|
#include <boost/filesystem/path.hpp>
|
|
#include <cwchar> // for std::mbstate_t
|
|
#include <string>
|
|
#include <locale>
|
|
|
|
namespace user
|
|
{
|
|
struct mbpath_traits;
|
|
|
|
typedef boost::filesystem::basic_path<std::wstring, mbpath_traits> mbpath;
|
|
|
|
struct mbpath_traits
|
|
{
|
|
typedef std::wstring internal_string_type;
|
|
typedef std::string external_string_type;
|
|
|
|
static external_string_type to_external( const mbpath & ph,
|
|
const internal_string_type & src );
|
|
|
|
static internal_string_type to_internal( const external_string_type & src );
|
|
|
|
static void imbue( const std::locale & loc );
|
|
};
|
|
} // namespace user
|
|
|
|
namespace boost
|
|
{
|
|
namespace filesystem
|
|
{
|
|
template<> struct is_basic_path<user::mbpath>
|
|
{ static const bool value = true; };
|
|
}
|
|
}
|