- 主题:我也折腾了一下C++Modules
前两天写了个小程序1000多行,单个.cpp文件。
反正也需要拆分,索性试试用模块来实现拆分吧。
最终拆成了14个模块加一个主程序。
遇到的坑主要是ATL的头文件,不能放在模块声明的下面,链接会报错,因为里面有全局变量,被模块把作用域给改了。
cloc --vcs=git .
23 text files.
21 unique files.
2 files ignored.
cloc v 2.06 T=0.74 s (28.3 files/s, 2005.2 lines/s)
-----------------------------------------------------------------------------------
Language files blank comment code
-----------------------------------------------------------------------------------
C++ 15 171 77 937
XML 2 0 0 269
C/C++ Header 3 6 4 22
Windows Resource File 1 1 0 2
-----------------------------------------------------------------------------------
SUM: 21 178 81 1230
-----------------------------------------------------------------------------------
--
FROM 171.221.52.*
我也试过用模块,后来又改回去了。
觉得c++的模块别扭,不如原来的头文件顺手
【 在 poocp 的大作中提到: 】
: 前两天写了个小程序1000多行,单个.cpp文件。
: 反正也需要拆分,索性试试用模块来实现拆分吧。
: 最终拆成了14个模块加一个主程序。
: ...................
--
FROM 223.72.91.*
【 在 poocp 的大作中提到: 】
: 前两天写了个小程序1000多行,单个.cpp文件。
: 反正也需要拆分,索性试试用模块来实现拆分吧。
: 最终拆成了14个模块加一个主程序。
: ...................
什么编译器,g++不支持吧
--
FROM 1.202.36.*
我用的VS2026 insiders,这个预览版的模块支持是最好的。
g++15.1我也试了,也能支持模块,功能已经转正了,但支持度比VC++稍低一些
【 在 deusomax 的大作中提到: 】
: 什么编译器,g++不支持吧
--
FROM 171.221.52.*
比起总要一个.h一个.cpp两个文件来回切换着写代码,还是要舒服多了。
我比较能接受的另一个原因是以前用了一段时间pascal,现在还在用python,都是类似的单元/模块结构。
【 在 finlab 的大作中提到: 】
: 我也试过用模块,后来又改回去了。
: 觉得c++的模块别扭,不如原来的头文件顺手
:
: ...................
--
FROM 171.221.52.*
不麻烦,尽量代码都写在一个.h文件里,不要cpp文件。
【 在 poocp 的大作中提到: 】
: 比起总要一个.h一个.cpp两个文件来回切换着写代码,还是要舒服多了。
: 我比较能接受的另一个原因是以前用了一段时间pascal,现在还在用python,都是类似的单元/模块结构。
:
--
FROM 223.72.91.*
h/cpp两个文件的方式,优点是可以提供接口和实现的物理隔离
【 在 poocp 的大作中提到: 】
: 比起总要一个.h一个.cpp两个文件来回切换着写代码,还是要舒服多了。
: 我比较能接受的另一个原因是以前用了一段时间pascal,现在还在用python,都是类似的单元/模块结构。
:
--
FROM 221.218.213.*
嗯,有的只提供头文件出去,不泄漏cpp实现。
【 在 Bernstein 的大作中提到: 】
: h/cpp两个文件的方式,优点是可以提供接口和实现的物理隔离
:
--
FROM 39.144.46.*
不写模板库没必要用module
--
FROM 115.193.181.*