私は脳のけいれんを起こしている:
struct MyStruct
{
int x;
...
inline int getX1() const { return x; }
inline int getX2() const volatile { return x; }
};
volatile MyStruct myStruct;
myStruct.getX1()
揮発性の構造体/クラスで呼び出されるメソッドはvolatile
それらのメソッドに修飾子を持っている必要があるため、コンパイラーはmyStruct.getX2()を呼び出せ、呼び出すことはできないことを理解しています。
私の質問は次のとおりです。そのようなクラスを作成し、他のソフトウェアルーチンで使用するために公開する場合、メソッドに揮発性修飾子を追加する理由と追加しない理由は何ですか?
タグ付けされたメソッドは、最適化の目的で、volatile
そのメンバーのいずれもがタグ付けされていないとコンパイラに指示するためですが、メソッドがタグ付けされていない場合は、タグ付けされていないメンバーを最適化できますか?volatile
volatile
volatile