[Mockpp-commits] mockpp/mockpp/compat Formatter.h,1.30,1.31
Brought to you by:
ewald-arnold
From: Ewald A. <ewa...@us...> - 2005-07-24 17:48:42
|
Update of /cvsroot/mockpp/mockpp/mockpp/compat In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7185/mockpp/compat Modified Files: Formatter.h Log Message: better ostream reuse Index: Formatter.h =================================================================== RCS file: /cvsroot/mockpp/mockpp/mockpp/compat/Formatter.h,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- Formatter.h 23 Jul 2005 22:34:32 -0000 1.30 +++ Formatter.h 24 Jul 2005 17:48:33 -0000 1.31 @@ -279,7 +279,7 @@ + MOCKPP_GET_STRING(typeid(o).name()) + MOCKPP_PCHAR("&]"); formatter << s; - MOCKPP_UNUSED(o); + MOCKPP_UNUSED(o); return formatter; } @@ -314,29 +314,53 @@ template <class T> mockpp::String ostreamed(const T& t) -{ - std::basic_ostringstream<char> oss; - oss << t; -#ifdef MOCKPP_UNICODE - return mockpp::getUnicode(oss.str()); -#else - return oss.str(); -#endif -} +{ + std::basic_ostringstream<char> oss; + oss << t; +#ifdef MOCKPP_UNICODE + return mockpp::getUnicode(oss.str()); +#else + return oss.str(); +#endif +} + + +/** Outputter which reuses an existing operator<<(std::basic_ostream<char>&, T). + * @param T data type for output + */ +#define MOCKPP_OSTREAMABLE(T) \ +mockpp::String & MOCKPP_EXPORT operator << (mockpp::String &formatter, const T &o) \ +{ \ + formatter << ostreamed(o); \ + return formatter; \ +} #ifdef MOCKPP_UNICODE template <class T> mockpp::String owstreamed(const T& t) -{ - std::basic_ostringstream<wchar_t> oss; - oss << t; - return oss.str(); -} +{ + std::basic_ostringstream<wchar_t> oss; + oss << t; + return oss.str(); +} + + +/** Outputter which reuses an existing operator<<(std::basic_ostream<wchar_t>&, T). + * @param T data type for output + */ +#define MOCKPP_OWSTREAMABLE(T) \ +mockpp::String & MOCKPP_EXPORT operator << (mockpp::String &formatter, const T &o) \ +{ \ + formatter << owstreamed(o); \ + return formatter; \ +} + #endif // MOCKPP_UNICODE + #endif // MOCKPP_DISABLE_OSTREAMED #endif // MOCKPP_FORMATTER_H |