次のマクロがあります。
#define STRING_STREAM( data ) \
( ( (std::ostringstream&) \
( std::ostringstream( ).seekp( 0, std::ios_base::cur ) << data ) ).str( ) )
列挙型の<<をオーバーロードしようとしています:
std::ostringstream& operator<<( std::ostringstream& oStrStream, TestEnum& testEnum )
{
oStrStream << "TestEnum";
return oStrStream;
}
STRING_STREAM(testEnum)を呼び出すと、オーバーロードされた<<を使用しません。列挙型の数値を出力します。