6 typename T::value_type pop_front(T& container)
\r
8 auto item = std::move(container.front());
\r
9 container.pop_front();
\r
10 return std::move(item);
\r
13 template<typename T>
\r
14 std::vector<T> split(const T& container, size_t size)
\r
16 std::vector<T> result;
\r
17 const auto last = container.end() - container.size() % size;
\r
18 for(auto it = container.begin(); it != last; it += size)
\r
19 result.push_back(T(it, it + size));
\r
20 result.push_back(T(last, container.end()));
\r
22 return std::move(result);
\r