19#ifndef JOIN_H_INCLUDED
20#define JOIN_H_INCLUDED
26template <
class Stream,
class Iter>
33 for (++iter; iter != end; ++iter)
34 s << delimiter << *iter;
38template <
class Collection>
50 template <
class Stream>
62template <
class Collection, std::
size_t N>
74 template <
class Stream>
83template <std::
size_t N>
95 template <
class Stream>
100 if (N > 0 && *(end - 1) ==
'\0')
std::string const delimiter
CollectionAndDelimiter(Collection const c[N], std::string delim)
Collection const * collection
CollectionAndDelimiter(char const c[N], std::string delim)
std::string const delimiter
Collection const & collection
friend Stream & operator<<(Stream &s, CollectionAndDelimiter const &cd)
CollectionAndDelimiter(Collection const &c, std::string delim)
std::string const delimiter
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Stream & join(Stream &s, Iter iter, Iter end, std::string const &delimiter)