24 #ifndef STATICLIB_IO_MULTI_SOURCE_HPP
25 #define STATICLIB_IO_MULTI_SOURCE_HPP
30 #include "staticlib/config.hpp"
41 template<
typename Range>
50 typename Range::iterator it;
59 sources(std::move(sources_range)),
60 it(sources.begin()) { }
83 sources(std::move(other.sources)),
84 it(std::move(other.it)) { }
93 sources = std::move(other.sources);
94 it = std::move(other.it);
105 while (sources.end() != it) {
106 std::streamsize
read = it->read(span);
107 if (std::char_traits<char>::eof() != read) {
112 return std::char_traits<char>::eof();
124 template <
typename Range,
125 class =
typename std::enable_if<!std::is_lvalue_reference<Range>::value>::type>
137 template <
typename Range>
138 multi_source<std::vector<reference_source<typename Range::value_type>>>
140 auto vec = std::vector<reference_source<typename Range::value_type>>();
141 for (
auto& el : range) {