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)