そのため、渡されたパラメーターが function に触れてはならないものを作成することについて、より厳密になるように努めてきましたconst
。
一部の C++ コードで遭遇した状況の 1 つは、オブジェクトが変更される可能性があるが、オブジェクトの特定の重要な機能にアクセスできないように関数を「ロックアウト」したい場合です。たとえば、std::ifstream
ファイル ハンドルの場合、関数がファイルを閉じないようにしたい場合があります。
として渡すとconst &
、そのconst
部分が標準のファイル i/o を実行できないようです。
たとえば、次のようなものが欲しい
void GetTags(Arr<std::string> & tags, std::ifstream const& fileHandle)
...しかし、ファイルの i/o は許可するが、開く/閉じる操作は許可しないように記述されています。
C ++でこれを行うための良い/信頼できる方法はありますか? ベストプラクティスと見なされるものは何ですか?