C++ 模块 - 为什么它们从 C++0x 中删除?他们以后会回来吗?

我刚刚发现了这个 旧的 C++0x 草稿关于 C++0x 中的模块.

I just discovered this old C++0x draft about modules in C++0x.

这个想法是通过只编写 .cpp 文件来摆脱当前的 .h/.cpp 系统,然后在编译期间生成模块文件,然后其他 .cpp 文件会使用这些文件.

The idea was to get out of the current .h/.cpp system by writing only .cpp files which would then generate module files during compilation, which would then in turn be used by the other .cpp files.

这看起来非常棒.

但我的问题是:他们为什么要从 C++0x 中删除它?是不是因为技术难度太大?时间不够?你认为他们会考虑为 C++ 的另一个版本开发它吗?

But my question is: why did they remove it from C++0x? Was it because of too many technical difficulties? Lack of time? And do you think they will consider working on it for an ulterior version of C++?

推荐答案

来自 C++ 演进状态(旧金山 2008 后),模块提案被归类为标题为单独的 TR:"

From the State of C++ Evolution (Post San Francisco 2008), the Modules proposal was categorized as "Heading for a separate TR:"

这些主题被认为太重要了,不能在发布之前等待 C++0x 之后的另一个标准,但又太具有实验性,无法及时为下一个标准定稿.因此,这些功能将尽快通过技术报告提供.

These topics are deemed too important to wait for another standard after C++0x before being published, but too experimental to be finalised in time for the next Standard. Therefore, these features will be delivered by a technical report at the earliest opportunity.

模块提案还没有准备好,等待它会延迟完成 C++0x 标准.它并没有真正被删除,只是从未被纳入工作文件中.

The modules proposal just wasn't ready and waiting for it would have delayed finishing the C++0x standard. It wasn't really removed, it was just never incorporated into the working paper.

相关文章