/* * Copyright 2015 Cloudius Systems */ #pragma once #include "core/sstring.hh" #include #include /** * Converts a vector of pointers to Printable elements. * Printable is an object which has to_string() method. */ template static inline sstring to_string(const std::vector& items) { // TODO: optimize std::ostringstream oss; size_t left = items.size(); oss << "["; for (auto&& item : items) { oss << item->to_string(); if (left != 1) { oss << ", "; } --left; } oss << "]"; return oss.str(); } template static inline sstring join(sstring delimiter, const std::vector& items) { std::ostringstream oss; size_t left = items.size(); for (auto&& item : items) { oss << item->to_string(); if (left != 1) { oss << delimiter; } --left; } return oss.str(); }