
I subsitute the std allocator with my own stl allocator, and defined a new string type like this: typedef std::basic_string<char, std::char_traits<char>, MySTLAllocator<char>
my_string; typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, MySTLAllocator<wchar_t> > my_wstring;
And I want to use them in my project, but I met some problem when I use boost.asio and boost.filesystem. The boost asio directly use std::string, I can not find a way to deal with it. I know I can pass a c style string char* to the asio, but it was less efficiency. When use the boost.filesystem, I tried this way, but I also met some problem: namespace MyNamespace { struct path_traits; typedef boost::filesystem::basic_path<my_string, path_traits> path; typedef boost::filesystem::basic_path<my_wstring, path_traits> wpath; struct path_traits { typedef my_string internal_string_type; typedef my_string external_string_type; static external_string_type to_external( const path &, const internal_string_type & src ) { return src; } static internal_string_type to_internal( const external_string_type & src ) { return src; } }; typedef boost::filesystem::basic_recursive_directory_iterator<path> recursive_directory_iterator; typedef boost::filesystem::basic_recursive_directory_iterator<wpath> wrecursive_directory_iterator; } namespace boost { namespace filesystem { template<> struct is_basic_path<MyNamespace::path> { BOOST_STATIC_CONSTANT( bool, value = true ); }; template<> struct is_basic_path<MyNamespace::wpath> { BOOST_STATIC_CONSTANT( bool, value = true ); }; } } namespace MyNamespace { inline bool is_directory( const path & ph ) { return boost::filesystem::is_directory<path>( ph ); } inline bool is_directory( const wpath & ph ) { return boost::filesystem::is_directory<wpath>( ph ); } } For replace all the function is a huge work, and in this way I can not replace it for I met this function, which is also use the std::string directly: BOOST_FILESYSTEM_DECL file_status status_api( const std::string & ph, system::error_code & ec ); Maybe this way is too bother, I think there must be an easy way to replace the string. Is there any way to resolve this? Thank you. -- View this message in context: http://old.nabble.com/Problem-to-substitute-the-std-allocator-with-boost.asi... Sent from the Boost - Users mailing list archive at Nabble.com.