Cpplint要求添加头文件

时间:2013-12-11 11:47:54

标签: c++ cpplint

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

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

我做错了什么?我应该将它包含在executor.h中吗?

2 个答案:

答案 0 :(得分:3)

如果在标题中的某处使用std :: string(例如,使用std :: string作为参数之一的函数声明),则只需忽略该警告。如果可能,请针对该特定情况进行过滤。

但是,请勿忽略其建议转发声明的其他警告。不包括另一个标头中的标头是好的,因为它减少了更改标题中的内容时需要重建的文件数。

答案 1 :(得分:0)

编辑以考虑以下评论。你可以忽略这是一种误报。

通常,您应该包含在executor.cpp中,只需在executor.h中声明类(class Thing;)。

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