Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将C++;20个模块改变了静态库和共享库的结构? 传统上,C++库是由一个头文件+在二进制文件中编译实现的( . >代码> .S/, . DyLIB < /COD>, .DLL,…)。头文件是源代码中的#included,二进制部分链接到最终的可执行文件_C++_C++20_C++ Modules - Fatal编程技术网

将C++;20个模块改变了静态库和共享库的结构? 传统上,C++库是由一个头文件+在二进制文件中编译实现的( . >代码> .S/, . DyLIB < /COD>, .DLL,…)。头文件是源代码中的#included,二进制部分链接到最终的可执行文件

将C++;20个模块改变了静态库和共享库的结构? 传统上,C++库是由一个头文件+在二进制文件中编译实现的( . >代码> .S/, . DyLIB < /COD>, .DLL,…)。头文件是源代码中的#included,二进制部分链接到最终的可执行文件,c++,c++20,c++-modules,C++,C++20,C++ Modules,C++20中的模块会改变这种布局吗?如果是这样,操作系统是否必须升级其分发核心库的方式,例如Linux中的标准库或Windows中的其他核心DLL?好吧,我还没有研究最新的规范草案,但有一件事始终是必须的,那就是向后兼容性。现有的软件堆积如山,即使一种语言引入了一种“更好的方法”也必须能够进行编译。.h文件策略是原始的,但它永远不会消失。IIUC模块的设计使编译器能够在编译时生成一种“模块定义文件”。在我看来,这让我想起了一个预编译的标题。所以我认为这种二元性不会有任何进展。只有编译器开关才有可

C++20中的模块会改变这种布局吗?如果是这样,操作系统是否必须升级其分发核心库的方式,例如Linux中的标准库或Windows中的其他核心DLL?

好吧,我还没有研究最新的规范草案,但有一件事始终是必须的,那就是向后兼容性。现有的软件堆积如山,即使一种语言引入了一种“更好的方法”也必须能够进行编译。
.h
文件策略是原始的,但它永远不会消失。IIUC模块的设计使编译器能够在编译时生成一种“模块定义文件”。在我看来,这让我想起了一个预编译的标题。所以我认为这种二元性不会有任何进展。只有编译器开关才有可能改变。正如C++ 20中,规范中没有标准库模块,这是:<代码>现在模块在C++ 20中,C++23应该附带一个规范,说明标准库的功能是如何作为模块公开的。模块基本上只是纯编译的头文件,因此基本上只是对现有头文件的直接交换,我不认为其他任何东西会改变二进制文件应该仍然存在,但实际上,提供头文件和/或模块定义文件可能会有所不同(由于模块定义格式尚未标准化,头文件似乎更便于移植)