1. ホーム
  2. c++

[解決済み] Eclipseが文句を言う。「Invalid overload of 'endl'" - but code does compile.

2022-02-13 07:15:45

質問

テンプレート化したクラスに演算子<<を書きました。

template<class T>
std::ostream& operator<<(std::ostream &strm, const MyClass<T> &obj)

と書くと

cout << myClassInstance << endl;

これはコンパイルして実行されますが、私のEclipse CDTは言います。

endl' の無効なオーバーロード

なぜそう言われるのですか?

(Win7 64bit で Eclipse CDT Kepler を Cygwin gcc で使用しています)

どのように解決するのですか?

これはまさにEclipse CDT(より具体的にはEclipseのコード解析ツールCODAN)のバグです。それは バグ のレポートがあり、それが 修正済み 2014年2月にリリース予定のCDT8.3.0から使用できるようになります。