这是我所学的烦人漏洞,而且我似乎找不到答案。
我了解为什么它在编译过程中起作用(该标头从未被单独编译,因此stdafx.h已经包含在内),但不知道为什么它在编辑时起作用。
说我有以下文件:
stdafx.h
#pragma once
#include <string>
MyFunction.h
#pragma once
void MyFunction( std::string Text );
MyFunction.cpp
#include "stdafx.h"
#include "MyFunction.h"
void MyFunction( std::string Text )
{
// implementation here
}
在编辑MyFunction.h时,Intellisense如何找到std::string
以实现自动完成,而不是将其显示为undefined等?
我之所以问是部分出于好奇,部分原因是如果我不知道该机制,那么我不知道自己是否有打破它的风险或在这样做时如何解决它。我已经看到它多次中断,导致大多数有问题的标头被标记为错误,然后在某个时候它要么自行修复,要么我接受它不会再出现并添加一些额外的策略包含在标题中。
只需重复一下:我不是在问编译过程中如何找到std :: string,而是在编辑头文件时问它是如何找到的。