Program Listing for File stream_utils.hpp¶
↰ Return to documentation for file (include/uitsl/utility/stream_utils.hpp)
#pragma once
#ifndef UITSL_UTILITY_STREAM_UTILS_HPP_INCLUDE
#define UITSL_UTILITY_STREAM_UTILS_HPP_INCLUDE
#include <algorithm>
#include <fstream>
#include <iostream>
#include <iterator>
#include <string>
namespace uitsl {
class Line {
std::string str;
public:
Line() = default;
operator std::string() const { return str; }
friend std::istream& operator>>(std::istream&, Line&);
};
inline std::istream& operator>>(std::istream& is, Line& line) {
std::getline(is, line.str);
return is;
}
template <typename Out>
void read_lines(std::istream & is, Out out) {
using In = std::istream_iterator<uitsl::Line>;
std::copy(In(is), In(), out);
}
} // namespace uitsl
#endif // #ifndef UITSL_UTILITY_STREAM_UTILS_HPP_INCLUDE