diff options
Diffstat (limited to 'boost/filesystem/string_file.hpp')
-rw-r--r-- | boost/filesystem/string_file.hpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/boost/filesystem/string_file.hpp b/boost/filesystem/string_file.hpp new file mode 100644 index 0000000000..015f659080 --- /dev/null +++ b/boost/filesystem/string_file.hpp @@ -0,0 +1,43 @@ +// filesystem/string_file.hpp --------------------------------------------------------// + +// Copyright Beman Dawes 2015 + +// Distributed under the Boost Software License, Version 1.0. +// See http://www.boost.org/LICENSE_1_0.txt + +// Library home page: http://www.boost.org/libs/filesystem + +#ifndef BOOST_FILESYSTEM_STRING_FILE_HPP +#define BOOST_FILESYSTEM_STRING_FILE_HPP + +#include <string> +#include <boost/filesystem/fstream.hpp> +#include <boost/filesystem/operations.hpp> + +namespace boost +{ +namespace filesystem +{ +inline +void save_string_file(const path& p, const std::string& str) +{ + ofstream file; + file.exceptions(std::ofstream::failbit | std::ofstream::badbit); + file.open(p, std::ios_base::binary); + file.write(str.c_str(), str.size()); +} + +inline +void load_string_file(const path& p, std::string& str) +{ + ifstream file; + file.exceptions(std::ifstream::failbit | std::ifstream::badbit); + file.open(p, std::ios_base::binary); + std::size_t sz = static_cast<std::size_t>(file_size(p)); + str.resize(sz, '\0'); + file.read(&str[0], sz); +} +} // namespace filesystem +} // namespace boost + +#endif // include guard |