bcc5.5.1で以下のコードが通らないのですが、どうしてでしょうか?

std::auto_ptr<int> a;
a = std::auto_ptr<int>(new int);

memory.stlファイルには、

auto_ptr<X>& operator= (auto_ptr<X>& rhs) _RWSTD_THROW_SPEC_NULL
{
 reset(rhs.release());
 return *this;
}
とあるので、オペレータ自体は定義されているようなのですが。

エラー E2285 a.cpp 44: 'std::auto_ptr<int>::operator =(std::auto_ptr<int>)に一致するものが見つからない

です。
他の箇所でも、関数宣言時に仮引数に参照を指定してテンプレートクラスを渡すと
同様のエラーが出て、実体になおしたりしたのですが。
原因がわかる方、おねがいします。