Cpplint要求添加头文件

Cpplint asks to add header file

本文关键字:文件 添加 Cpplint      更新时间:2023-10-16

我有一些代码在名为executor.cpp的文件中使用std::字符串。在相应的头文件中,executor.h我包含#include <string>。然而,在executor.cpp上运行cpplint会给我一条消息,上面写着:-

dec-session/executor.cpp:15: Add #include <string> for string [build/include_what_you_use] [4]

我做错了什么?我应该把它列入遗嘱执行人吗?

如果您在标头中的某个位置使用std::string(例如,有一个函数声明,其中std::字符串是参数之一),则忽略警告。如果可能的话,针对特定情况过滤掉。

但是,不要忽视它建议转发声明的其他警告。不在另一个标头中包含标头是很好的,因为这样可以减少在更改标头中的某些内容时需要重新生成的文件数量。

编辑以解释下面的注释。这是一个你可以忽略的假阳性。

通常,您应该包含在executor.cpp中,并在executoer.h中转发声明类(class Thing;)。

不过,假设您要生成Thing类的另一个版本,那么当前必须重新编译包含executor.h的任何内容。通过将include移到cpp中,您只需要重新编译executor.cpp并重新链接。