Câu hỏi liên quan đến nội dung của nhị phân .pch được tạo bởi trình biên dịch Visual Studio. Nó chứa gì? Chỉ là cây được phân tích cú pháp của các tệp tiêu đề hoặc mã đối tượng?Tiêu đề biên dịch sẵn của Visual Studio bao gồm những gì?
Hãy xem xét ví dụ sau:
// myheader.h
#include <vector>
class A {
public:
void add(int i) { v.push_back(i); }
private:
std::vector<int> v;
};
có bao gồm tiêu đề này trong tập được biên dịch sẵn kết quả trong một mẫu instantiation hoàn chỉnh các vector <int> được biên soạn và bổ sung vào .pch?
Để cung cấp thêm một số ngữ cảnh; nếu chỉ có cây phân tích cú pháp được biên dịch trước, điều này có nghĩa là mã đối tượng cho các mẫu được tạo ra sẽ vẫn được tạo một lần cho mỗi đơn vị biên dịch với kết quả tăng lên trong thời gian biên dịch và liên kết. Vì vậy, "hợp nhất xây dựng"/giảm đơn vị biên dịch vẫn sẽ là một yếu tố có liên quan trong việc giảm thời gian xây dựng ngay cả với các tiêu đề biên dịch sẵn được kích hoạt.