У меня есть класс, который содержит указатель на постоянное значение VARIANT вне класса, но иногда я хочу изменить этот указатель, чтобы ссылаться на объект-член VARIANT самого класса.Как вы определяете изменяемый указатель на объект const?
Большинство экземпляров этого класса будет const, поэтому я должен объявить указатель как изменяемый.
В Visual C++ этот код, кажется, делать то, что я хочу:
VARIANT mutable const* m_value;
Однако, так как изменяемые предназначается, чтобы быть свойством указателя и не pointee, я думаю, что это правильный синтаксис :
VARIANT const * mutable m_value;
Как и указатель константы (а не указатель на объект const). Однако Visual C++ не принимает этот вариант.
Предупреждение C4518: 'mutable': тип или класс хранилища или спецификаторы типов; игнорируется
Является ли Visual C++ правильным, или я что-то упускаю? Может ли другой более стандартный совместимый компилятор вести себя по-другому?
Спасибо за ответ! (и подсказка о Комо онлайн, может пригодиться в будущем). Да, я думаю, что имеет смысл, что mutable ведет себя (и «связывает») подобно статическому, а не const. –