在编写用作其他库(C 风格)API 的包装器的类时,确保 const 正确性的相关做法是什么。我正在编写一个类(Renderer),它将应用程序特定的渲染调用转换为相应的 OpenGL(可能还有 DirectX)调用。这个类实际上并没有自己的状态,它通过调用 Renderer::applyTransform(const Matrix&) 来修改,而是在内部调用改变 OpenGL 状态的 API。在这种情况下,将此类 API 标记为 const 是正确的做法,还是“修改可观察状态”也扩展到此类包装的 OpenGL 状态,要求我使其成为非成本?
这类似于Const-correctness 和 hardware writes,但也许这是一个更具体的用例。