Logging::Logger
次の機能を持つクラスがあります。
template<typename T>
const Logger& Logger::operator<<(const T& in) const {
// ...
return *this;
}
const Logger& Logger::operator<<(std::ostream& (*os)(std::ostream&)) {
// ...
return *this;
}
そして、次のコード:
loggerInstance << "ID: " << 5 << endl;
すべての演算子が実装されているように見えますが、次のエラーが発生します。
エラー C2678: バイナリ '<<': タイプ 'const Logging::Logger' の左側のオペランドを取る演算子が見つかりません (または、受け入れ可能な変換がありません)
もちろん、すべてが機能しているわけではありませんendl
。
私は次の答えを見ました:
operator<< をオーバーロードするとき、std::endl は不明な型です
私は何が欠けていますか?