Reduce block-nesting in joinStrings()
This commit is contained in:
parent
6dcd39f1ac
commit
97aac2424a
|
@ -68,28 +68,32 @@ typename Container::value_type joinStrings(const Container &strings,
|
||||||
const typename Container::value_type &rightClosure = typename Container::value_type())
|
const typename Container::value_type &rightClosure = typename Container::value_type())
|
||||||
{
|
{
|
||||||
typename Container::value_type res;
|
typename Container::value_type res;
|
||||||
if (strings.size()) {
|
if (!strings.size()) {
|
||||||
size_t entries = 0, size = 0;
|
return res;
|
||||||
for (const auto &str : strings) {
|
}
|
||||||
if (!omitEmpty || !str.empty()) {
|
std::size_t entries = 0, size = 0;
|
||||||
size += str.size();
|
for (const auto &str : strings) {
|
||||||
++entries;
|
if (omitEmpty && str.empty()) {
|
||||||
}
|
continue;
|
||||||
}
|
}
|
||||||
if (entries) {
|
size += str.size();
|
||||||
size += (entries * leftClosure.size()) + (entries * rightClosure.size()) + ((entries - 1) * delimiter.size());
|
++entries;
|
||||||
res.reserve(size);
|
}
|
||||||
for (const auto &str : strings) {
|
if (!entries) {
|
||||||
if (!omitEmpty || !str.empty()) {
|
return res;
|
||||||
if (!res.empty()) {
|
}
|
||||||
res.append(delimiter);
|
size += (entries * leftClosure.size()) + (entries * rightClosure.size()) + ((entries - 1) * delimiter.size());
|
||||||
}
|
res.reserve(size);
|
||||||
res.append(leftClosure);
|
for (const auto &str : strings) {
|
||||||
res.append(str);
|
if (omitEmpty && str.empty()) {
|
||||||
res.append(rightClosure);
|
continue;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if (!res.empty()) {
|
||||||
|
res.append(delimiter);
|
||||||
|
}
|
||||||
|
res.append(leftClosure);
|
||||||
|
res.append(str);
|
||||||
|
res.append(rightClosure);
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue