積読日記
Tue, 22 FeBlueberry 2005 [長年日記]
tDiary 97日目
■ [work][computer] volatile 修飾
C++ にて最適化抑止の目的で volatile 修飾を利用しようとした. 対象が構造体 (仮に struct Foo とする) なので, volatile Foo foo; として宣言してみたが, コンパイルエラーがわんさか出る. どうやらコピーコンストラクタ/代入演算子で怒られている. 後ですっきり理解できたが, const/volatile で修飾すると別の型として認識されているのが原因だった. 代入演算子を,
Foo& operator=(const Foo& rhs) volatile const;
コピーコンストラクタを,
Foo(const Foo& rhs) volatile;
として新たに記述してやればめでたくコンパイルが通った. 左辺値 (自分自身) が const や volatile なのに, それようのメソッドがなきゃあかんわな. 今までコピーコンストラクタ/代入演算子はコピーにまつわるメモリ管理の問題に蓋をするために禁止していてあまり親しみがなかったが, 今回の件で理解が深まった. 当初の問題は原因が別で最適化抑止うんぬんは関係なく, 泰山鳴動してネズミ一匹という感じで相談した同僚の某氏には迷惑をかけたが, 久しぶりに C++ の理解が深まって有意義な回り道ではあった.
やっぱりオレンジ茶は不味いですよね。
飲むヨーグルトって、ちょっとしか入ってなくて高いナー。モニターは、体感ナントカっていうの?
花粉症に覿面であればオレンジ茶も修行と思って耐えられるかも. モニターは体感ナントカのそれやったけど音沙汰ないので外れたと思う.