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