编写C ++代码时,我经常首先在头文件中编写完整的“实现”代码,然后再将实现重构为.cpp文件。
这很好,但我发现这个过程费力,但其他方面很容易,所以我想知道是否有任何自动化方法可以做到这一点?
具体来说,我想将.h
中的所有类和函数定义转换为声明,并将它们声明为新的.cpp
文件。
我正在使用xcode,但我对任何解决方案持开放态度。
答案 0 :(得分:9)
有Lazy C++只能编写一个.lzz文件,它会为你生成.h和.cpp。
我真的很期待C++ modules你只写.cpp并自动生成导入文件。但即使 Clang 已经开始实施模块,我们也要等待几年。 Here是一些例子。
答案 1 :(得分:1)
答案 2 :(得分:1)
您可能也对Eclipse的函数“Refactor / Toggle function”感兴趣。然而,它并不总是正常工作。
答案 3 :(得分:0)
C ++ 20模块本质上为我们做到了
如在https://quuxplusone.github.io/blog/2019/11/07/modular-hello-world/中提到的,clang 2019-11的实现方式如下:
clang++ -std=c++2a -c helloworld.cpp -Xclang -emit-module-interface -o helloworld.pcm
clang++ -std=c++2a -c -fprebuilt-module-path=. -o helloworld.o helloworld.cpp
clang++ -std=c++2a -fprebuilt-module-path=. -o main.out main.cpp helloworld.o
其中:
helloworld.cpp
包含实现helloworld.pcm
是预编译的模块,基本上是从.cpp
自动提取的头文件(但以clang内部语言格式),它由main.cpp
使用而没有{{1} } 所以基本上clang是工具,因此解析是完美的。