Does somebody know why the following code gives an error when compiled with uclibc++ and not with (glib)c++? I'm using the OpenWRT-SDK-i686-1 package.

// BEGIN
#include <iostream>
using namespace std;

class A : public ostream
{
public:
  A(streambuf * buf)
    : ostream(buf)
  {}
};

A a(cout.rdbuf());
// END

The error is pretty cryptic since it suggests that the call to ostream(buf) is overlooked.