这个问题在这里已经有了答案:
Include all files in a directory?
(4 个回答)
去年关闭。
在 Python 中,当您创建一个模块时,您会创建一个 __init__.py
文件(至少,通常)。这个东西有C/C++等价物吗?我的意思是有办法#include
一个目录实际上包含一个文件?
最佳答案
不,C++ 本身没有这样的特性。似乎通常使用的编译器也不支持它。在 C++20 中引入了一个类似于 Python 模块的特性:https://en.cppreference.com/w/cpp/language/modules
你可能想看看像 SCons 这样的构建系统。或 CMake这将允许您在实际的 C++ 预处理/编译之前实现一些预处理。例如,您可以使用它们生成一个包含目录中所有头文件的头文件,或者如果您确实需要它,可以做任何更复杂的事情。
请务必考虑最后一句话的最后一部分:你真的需要它吗?如果代码的所有依赖项都是显式的,通常代码更容易维护。包含“所有内容”的标题将使其难以跟踪。可以想象一些打破这一规则的正当理由,例如如果这些 header 也生成了,并且希望有一种包含所有这些 header 的自动方式。尽管如此,最好是这种“魔法”的范围是独立的并且尽可能小。
关于python - Python 的 "__init__.py"是否有 C/C++ 等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66135780/