0

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 は不明な型です

私は何が欠けていますか?

4

1 に答える 1