我的Netbeans intellisense突然停止工作,这是由于Boost predef / os / bsd.h标头出现了递归包含问题,如此处所述:
Unable to resolve template based identifier "get". Netbeans 8.1
答案如下:
我遇到了同样的问题。问题在于提振 predef / os / bsd.h标头。它在#else块中包含#5个文件,用于 #ifndef BOOST_PREDEF_OS_BSD_H保护装置。这意味着该标头 如果这5个文件中的任何一个也不能防止递归 包括bsd.h(他们这样做)。
我的解决方案是编辑predef / os / bsd.h文件并添加递归 #else块中的后卫-因此,从第94行开始 predef / os / bsd.h文件现在看起来像:
#ifndef BOOST_PREDEF_OS_BSD_H_PREVENT_RECURSION <-- ADD THIS
#define BOOST_PREDEF_OS_BSD_H_PREVENT_RECURSION <-- ADD THIS
#include <boost/predef/os/bsd/bsdi.h>
#include <boost/predef/os/bsd/dragonfly.h>
#include <boost/predef/os/bsd/free.h>
#include <boost/predef/os/bsd/open.h>
#include <boost/predef/os/bsd/net.h>
#endif <-- ADD THIS
有没有一种方法可以解决此问题而无需修改和重新编译boost源代码?