Удивительно, но единственный действительно похожий вопрос, который я нашел (Преимущества удаления включений, которые уже находятся в предварительно скомпилированном заголовке ?) только спрашивает о возможном выигрыше во времени компиляции и упоминает о недостатках, но не указывает, в чем они могут заключаться. Есть и другие связанные вопросы, но это касается включения заголовков в заголовки, а не непосредственно в единицы перевода, поэтому я хотел спросить именно об этом.
Учитывать:
precompile.hpp
#ifndef PRECOMPILE_H
#define PRECOMPILE_H
#include <string>
#include <iostream>
#endif // PRECOMPILE_H
precompile.cpp
#include "precompile.hpp"
main.cpp
#include "precompile.hpp"
#include <string>
#include <iostream>
int main()
{
std::string str = "hello";
std::cout << str << "\n";
}
Есть ли какие-либо важные рекомендации относительно того, следует ли явно включать в исходный файл предварительно скомпилированные заголовки (в моем примере <string>
и <iostream>
)?