此外,由于C++内联存储数据非常高效,即使调用者也必须了解对象的内存布局。
即将推出的模块标准是否解决了这个问题?
示例:
class GLWin {
private:
GLFWwindow* win;
glm::mat4 projection;
...
};
一个包含指向内部实现的指针的对象可以通过空声明来解耦,即:
class GLFWwindow;
但是,如果出于性能考虑,我们将mat4对象包含在窗口中,那么我们需要知道大小,这意味着必须包含定义,带入一个通常因为级联包含而非常庞大的头文件。模块中是否有任何机制可以隐藏细节并允许保留正确数量的对象空间,同时像指针一样保持不透明?