Python 的“__init__.py”是否有 C/C++ 等价物?

Giu*_*pox 7 c++ python c++11

在 Python 中,当您创建一个模块时,您会创建一个__init__.py文件(至少通常如此)。是否有 C/C++ 等价物?我的意思是有没有办法让#include目录实际上包含一个文件?

Bar*_*zKP 5

不,C++ 本身没有这样的特性。通常使用的编译器似乎也不支持它。C++20 中引入了一个类似于 Python 模块的特性:https : //en.cppreference.com/w/cpp/language/modules

您可能想查看像SConsCMake这样的构建系统,它们将允许您在实际的 C++ 预处理/编译之前实现一些预处理。例如,您可以使用它们来生成一个包含目录中所有标题的头文件,或者如果您确实需要它,可以做任何更复杂的事情。

请务必考虑最后一句话的最后一部分:您真的需要它吗?如果所有依赖项都是显式的,那么代码通常更容易维护。包含“所有内容”的标题将使其难以跟踪。当然,人们可以想象打破这一规则的一些正当理由,例如,如果这些标头也被生成,并且希望有一种自动化的方式来包含所有这些标头。尽管如此,最好是这种“魔法”的范围是独立的并且尽可能小。

  • 标准侦听器没有扩展名,因此“#include <any>”查找名为“any”的文件,而不是“any.h”或“any.hpp”。 (3认同)