Listing 1
template< . . . > class fast_string_concatenator { public: typedef S string_type; typedef C char_type; typedef T traits_type; typedef fast_string_concatenator<S, C, T> class_type; // Construction public: fast_string_concatenator(string_type const &lhs, string_type const &rhs); fast_string_concatenator(string_type const &lhs, char_type const *rhs); fast_string_concatenator(string_type const &lhs, char_type const rhs); fast_string_concatenator(char_type const *lhs, string_type const &rhs); fast_string_concatenator(char_type const lhs, string_type const &rhs); fast_string_concatenator(class_type const &lhs, string_type const &rhs); fast_string_concatenator(class_type const &lhs, char_type const *rhs); fast_string_concatenator(class_type const &lhs, char_type const rhs); // Conversion public: operator string_type() const; . . . };