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