Minor refactoring and comment cleanup.

This commit is contained in:
Marko Zivanovic
2015-10-13 00:09:44 +02:00
parent b51aaa53c4
commit e01b829eda
+8 -8
View File
@@ -30,8 +30,8 @@ namespace version {
namespace { namespace {
/// Utility function to splice all vector elements to output stream, using designated separator and /// Utility function to splice all vector elements to output stream, using designated separator
/// function object for getting value from vector element. /// between elements and function object for getting values from vector elements.
template<typename T, typename F> template<typename T, typename F>
std::ostream& splice(std::ostream& os, const std::vector<T>& v, const std::string& sep, F read) { std::ostream& splice(std::ostream& os, const std::vector<T>& v, const std::string& sep, F read) {
for (auto it = v.cbegin(); it < v.cend() - 1; ++it) { for (auto it = v.cbegin(); it < v.cend() - 1; ++it) {
@@ -85,13 +85,13 @@ namespace version {
template<typename P, typename C> template<typename P, typename C>
std::ostream& operator<<(std::ostream& os, const version::Basic_version<P, C>& v) { std::ostream& operator<<(std::ostream& os, const version::Basic_version<P, C>& v) {
os << v.ver_.major << "." << v.ver_.minor << "." << v.ver_.patch; os << v.ver_.major << "." << v.ver_.minor << "." << v.ver_.patch;
if (!v.ver_.prerelease_ids.empty()) { std::string prl = v.prerelease();
os << "-"; if (!prl.empty()) {
splice(os, v.ver_.prerelease_ids, ".", [](const auto& id) { return id.first;}); os << "-" << prl;
} }
if (!v.ver_.build_ids.empty()) { std::string bld = v.build();
os << "+"; if (!bld.empty()) {
splice(os, v.ver_.build_ids, ".", [](const auto& id) { return id;}); os << "+" << bld;
} }
return os; return os;
} }