// See http://../doc/path.htm#mbpath for more information
#include <boost/filesystem/path.hpp>
-#include <cwchar> // for std::mbstate_t
+#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;
+namespace user {
+
+struct mbpath_traits;
- 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 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 internal_string_type to_internal(const external_string_type& src);
+
+ static void imbue(const std::locale& loc);
+};
- static void imbue( const std::locale & loc );
- };
} // namespace user
-namespace boost
+namespace boost {
+namespace filesystem {
+
+template<>
+struct is_basic_path< user::mbpath >
{
- namespace filesystem
- {
- template<> struct is_basic_path<user::mbpath>
- { static const bool value = true; };
- }
-}
+ static const bool value = true;
+};
+
+} // namespace filesystem
+} // namespace boost