我想这是一个关于风格而不是正确性的问题。
使用 Visual Studio 2012,我发现使用 windows.h、direct3d11、atlbase 和任何标准 c++ 头文件的预编译头文件比不使用它们时,我的项目构建速度要快得多。该项目大量使用 Windows,因此根本不需要任何东西可以移植到该项目的其他操作系统或编译器。
我的问题是我真的应该包括在#include "Precomp.h"
. 他们当然不会做任何事情,因为他们有标题保护或 #pragma 一次,但他们会帮助记录依赖关系。
在 .h 文件中呢?我不能在其中包含预编译的头文件,但为了使 .h 文件自包含,我总是包含,例如,如果它使用那里的任何东西。但这是不必要的,因为包含此 .h 文件的 .cpp 文件将始终在使用它的 .h 文件之前包含“Precomp.h”文件。
所以这并不是关于正确性,而是关于什么是理解和可维护性的最佳风格。
在这种情况下,预编译头文件的“最佳实践”是什么?