星期二, 7月 10, 2007

cout << string("str")為何能正確輸出結果

的確,在basic_ostream的member function中並不存在
operator<<(const string& str)
之類的function。可見cout << string("str")能夠正確輸出結果依賴的是其他機制。
答案就在basic_string的header中:

basic_ostream<_elem,>& __CLRCALL_OR_CDECL operator<<(
basic_ostream<_elem,>& _Ostr,
const basic_string<_elem,>& _Str)