Listing 5

template< . . . >
class fast_string_concatenator
{
public:
  . . .
  fast_string_concatenator(class_type const &lhs, class_type const &rhs);
  fast_string_concatenator(string_type const &lhs, class_type const &rhs);
  fast_string_concatenator(char_type const *lhs, class_type const &rhs);
  fast_string_concatenator(char_type const lhs, class_type const &rhs);
  . . .
};
template < . . . >
fast_string_concatenator<S, C, T>
  operator +( fsc_seed const &lhs, fast_string_concatenator< > const &rhs);
template < . . . >
fast_string_concatenator<S, C, T>
  operator +( fast_string_concatenator< > const & lhs
            , fast_string_concatenator< > const &rhs);
template < . . . >
fast_string_concatenator<S, C, T>
  operator +( S const & lhs, fast_string_concatenator< > const &rhs);
template < . . . >
fast_string_concatenator<S, C, T>
  operator +( C const *, fast_string_concatenator< > const &rhs);
template < . . . >
fast_string_concatenator<S, C, T>
  operator +( C const & lhs, fast_string_concatenator< > const &rhs);