Каковы соответствующие методы обеспечения константной корректности при написании классов, которые служат в качестве оберток для других библиотек (C style) API. Я был в процессе написания класса (Renderer), который переводит вызовы рендеринга приложения на соответствующие вызовы OpenGL (и, возможно, DirectX позже). Этот класс фактически не имеет своего собственного состояния, которое модифицируется вызовами, например, Renderer :: applyTransform (const Matrix &), но внутренне вызывает API, которые изменяют состояние OpenGL. В этом случае маркировка таких API, как const, правильная вещь, или «изменяет наблюдаемое состояние» также распространяется на состояние OpenGL, которое этот класс обертывает, требуя от меня сделать его нецелевым?Корректность корректности - C API-слой прокладки
Это похоже на Const-correctness and hardware writes, но, возможно, это более конкретный прецедент.
Спасибо. Это немного помогло. Вокруг этого нет строгого руководства, и именно это привело к моему вопросу. Думаю, я буду придерживаться того, что говорит Бен, - это зависит от общего дизайна. Отмечая это как ответ, поскольку вы были довольно тщательно. – user2184879