boost/filesystem/fstream.hppThe C++ Standard Library's <fstream> header uses const char* to pass arguments representing file names, with that usage occurring seven times.
The Filesystem Library's fstream.hpp header provides equivalent components, in namespace boost::filesystem, except that the seven const char* arguments have been replaced by const path& arguments.
The Filesystem Library's fstream.hpp header simply uses the <fstream> standard library components as base classes, and then redeclares constructors and open functions to take arguments of type const path& instead of const char*.
For documentation beyond the synopsis, see the tutorial and examples.
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 12 March, 2004
© 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)