Хидер стандартной библиотеки C++ <fstream> использует const char* для передачи аргументов, представляющих имена файлов, и такое использование встречается семь раз.
Хидер в библиотеке Boost.Filesystem fstream.hpp содержит эквивалентные компоненты в пространстве имен boost::filesystem, исключая семь случаев, для которых аргументы типа const char* заменены на const path&.
Хидер в библиотеке Boost.Filesystem fstream.hpp просто использует компоненты в стандартном хидере <fstream> как базовые классы, и переопределяет члены классов, которые должны работать с аргументами типа path.
Более подробная информация содержится в учебнике и примерах.
namespace boost
{
namespace filesystem
{
template < class charT, class traits = std::char_traits<charT> >
class basic_filebuf : public std::basic_filebuf<charT,traits>
{
public:
virtual ~basic_filebuf() {}
std::basic_filebuf<charT,traits> * open( const path & file_ph,
std::ios_base::openmode mode );
};
typedef basic_filebuf<char> filebuf;
typedef basic_filebuf<wchar_t> wfilebuf;
template < class charT, class traits = std::char_traits<charT> >
class basic_ifstream : public std::basic_ifstream<charT,traits>
{
public:
basic_ifstream() {}
explicit basic_ifstream( const path & file_ph,
std::ios_base::openmode mode = std::ios_base::in );
virtual ~basic_ifstream() {}
void open( const path & file_ph,
std::ios_base::openmode mode = std::ios_base::in );
};
typedef basic_ifstream<char> ifstream;
typedef basic_ifstream<wchar_t> wifstream;
template < class charT, class traits = std::char_traits<charT> >
class basic_ofstream : public std::basic_ofstream<charT,traits>
{
public:
basic_ofstream() {}
explicit basic_ofstream( const path & file_ph,
std::ios_base::openmode mode = std::ios_base::out );
virtual ~basic_ofstream() {}
void open( const path & file_ph,
std::ios_base::openmode mode = std::ios_base::out );
};
typedef basic_ofstream<char> ofstream;
typedef basic_ofstream<wchar_t> wofstream;
template < class charT, class traits = std::char_traits<charT> >
class basic_fstream : public std::basic_fstream<charT,traits>
{
public:
basic_fstream() {}
explicit basic_fstream( const path & file_ph,
std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out );
virtual ~basic_fstream() {}
void open( const path & file_ph,
std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out );
};
typedef basic_fstream<char> fstream;
typedef basic_fstream<wchar_t> wfstream;
} // namespace filesystem
} // namespace boost
Revised 25 мая, 2005
© Copyright Beman Dawes, 2002
Use, modification, and distribution are subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at www.boost.org/LICENSE_1_0.txt)
последняя правка: 25.05.2005
библиотека BOOST C++
http://www.boost.org
перевод
Elijah Koziev
www.solarix.ru