C++ Netbeans在插入boost库后标记为string.h的错误函数

C++ Netbeans在插入boost库后标记为string.h的错误函数,c++,netbeans,boost,C++,Netbeans,Boost,当我将boost库包括到我的项目中时,Netbeans突出显示为错误substr函数无法解析标识符substr。 尽管如此,如果我执行该项目,该项目将正常工作。。。。 此外,boost库也可以正常工作。 当我尝试删除包含boost库的指令时,substr错误消失。。。为什么???您的包含应该按{语言、操作系统、外部库、您自己的}的顺序排列。@EJP或。。你自己的,语言,操作系统,外部。这将阻止您构建依赖于其源/头文件的头文件,以满足头文件的依赖性。如果头文件中有std::string,在包含头文

当我将boost库包括到我的项目中时,Netbeans突出显示为错误substr函数无法解析标识符substr。 尽管如此,如果我执行该项目,该项目将正常工作。。。。 此外,boost库也可以正常工作。
当我尝试删除包含boost库的指令时,substr错误消失。。。为什么???

您的包含应该按{语言、操作系统、外部库、您自己的}的顺序排列。@EJP或。。你自己的,语言,操作系统,外部。这将阻止您构建依赖于其源/头文件的头文件,以满足头文件的依赖性。如果头文件中有std::string,在包含头文件之前不要将其作为包含.cpp文件的工作。它属于头文件,如果直接使用std::string,则属于.cpp文件。确保正确操作的一种方法是首先包含头,不要使用名称空间。。。在全球范围内。