std::istream
にはプロトタイプistream& read (char* s, streamsize n)
があり、実際に読み取られるバイト数は を呼び出して取得する必要がistream::gcount()
あり、 の有効性もistream
から知ることができますios::good
。
私が書こうとしていた別のストリームクラスの実装について同僚と話し合っていたとき、私はこの設計に従うかもしれないと言っていました。しかし、ユーザーに毎回gcountを呼び出させる代わりに、このようにプロトタイプを読み取って、1 回の呼び出しで解決できるようにすることもできistream& read (char* s, streamsize n, size_t &bytes_read)
、前者は扱いにくいと彼は言いました。std
私はのデザイン選択を弁護できませんでした。背後にある本当の理由は何istream::read
ですか?