上記 >>441 のように作成したストリームを用いて
以下のように文字列を出力すると、入力文字列のポインタがうまく判別されず(?)、
文字列のoperatorとは違う関数がよばれ、文字列のアドレスが数字で表示されてしまいます。

ostream2 cout2;
cout2 << L"TestString";

出力結果:00,524,1F0

どうしてこのような現象になってしまうのでしょうか?
原因がわからず困っています。



なお、以下のように二回同じ文字列を出力した場合、二回目は正しく文字列として出力されます。
ostream2 cout2;
cout2 << L"TestString";
cout2 << L"TestString";
出力結果:00,524,1F0 TestString

また、初回をbasic_stringでわたしてやった場合は以後普通に動作するようです。
ostream2 cout2;
cout2 << basic_string< wchar_t >("TestString");
cout2 << L"TestString";
出力結果:TestString TestString


同じ値をそのまま二回渡して呼ばれるoperator関数が、変わる事ってありえるのでしょうか???