47 lines
1.2 KiB
C++
Executable file
47 lines
1.2 KiB
C++
Executable file
// 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;
|
|
};
|
|
|
|
} // namespace filesystem
|
|
} // namespace boost
|