#include <iostream>
using namespace std;

int main() {
bool b1 = true , b2 = false , b3 = 0;
if (b1 && (b2 || ++b3)) cout << "Kitty on your lap";
cout << b1 << b2 << b3 << b1 && (b2 || ++b3) << endl;
return 0;
}

このコンテキストではオーバーロード'endl'が曖昧というエラーがでます。
<< endl を省くとコンパイルできるのですが
なぜ endl がダメなのか、わかりません。

コンパイラはBorland C++5.5.1です。
よろしくお願いします。