ファイルから読み書きする機能を簡単に与えるために、WindowsのファイルHANDLEをラップするクラスを作成しているとします。クラスには、ファイルからデータを読み取るread(buffer& out)
という関数があります。file read()const correctness
質問は、read()
はconst
である必要がありますか?
一方、ファイルを変更しないので、const
である必要があります。 一方、HANDLE(HANDLEをどこに読み込むかを示すファイルに変更するため)はconst
であってはなりません。
あなたはどう思いますか?
ハーブ・サッターは数年前、C++ 11で「constはスレッドセーフである」と言ったところで話をしました。だから問題は、(クライアント側の)ロックなしで2つのスレッドから 'read()'を安全に呼び出すことです。私は答えがノーだと思うので、関数は 'const'であってはなりません。 –