Make joinHumanReadable work for input iterators.

This commit is contained in:
chriseth 2018-08-14 11:31:51 +02:00
parent b30da8859a
commit 14e116c1d5

View File

@ -49,27 +49,23 @@ std::string joinHumanReadable
std::string const& _lastSeparator = "" std::string const& _lastSeparator = ""
) )
{ {
auto it = begin(_list); auto const itEnd = end(_list);
auto itEnd = end(_list);
std::string result; std::string result;
// append first string for (auto it = begin(_list); it != itEnd; )
if (it != itEnd)
{ {
result += *it; std::string element = *it;
bool first = (it == begin(_list));
++it; ++it;
} if (!first)
for (;it != itEnd; ++it)
{ {
if ((std::next(it) == itEnd) && !_lastSeparator.empty()) if (it == itEnd && !_lastSeparator.empty())
result += _lastSeparator; // last iteration result += _lastSeparator; // last iteration
else else
result += _separator; result += _separator;
}
// append string result += std::move(element);
result += *it;
} }
return result; return result;