もちろん、次のコードは機能します (std::cout::operator<< を呼び出します):
cout << 1 << '1' << "1" << endl;
たまたま std::operator<< もあり、char または char* 引数に対してのみ機能するようです。
operator<<(cout, '1'); // ok
operator<<(cout, "1"); // ok
operator<<(cout, 1); // error
では、なぜこの演算子が必要で、どのように使用するのでしょうか?
ありがとう。