クラス外の定数 VARIANT 値へのポインターを含むクラスがありますが、このポインターを変更して、クラス自体の VARIANT メンバー オブジェクトを参照したい場合があります。
このクラスのほとんどのインスタンスは const になるため、ポインターを変更可能として宣言する必要があります。
Visual C++では、このコードは私が望むことをしているようです:
VARIANT mutable const* m_value;
ただし、ミュータブルはポインタのプロパティであり、ポインティのプロパティではないため、これは正しい構文であると思います。
VARIANT const * mutable m_value;
定数ポインターを定義する方法に似ています (const オブジェクトへのポインターではありません)。ただし、Visual C++ はこのバリアントを受け入れません。
警告 C4518: 'mutable': ストレージ クラスまたは型指定子が予期されていません。無視された
Visual C++ は正しいですか、それとも何か不足していますか? より標準に準拠した別のコンパイラが異なる動作をする可能性はありますか?