Boost prevf / os / bsd.h имеет рекурсивные включения - PullRequest
0 голосов
/ 08 сентября 2018

Мой Netbeans intellisense неожиданно перестал работать, и это связано с тем, что в заголовке Boost предопределенный / os / bsd.h возникла рекурсивная проблема включения, как подробно описано здесь:

Невозможно разрешить основанный на шаблоне идентификатор "get". Netbeans 8.1

, где ответ говорит:

У меня была такая же проблема. Проблема в ускорении header / os / bsd.h заголовок. Включает 5 файлов в блоке #else для охранник #ifndef BOOST_PREDEF_OS_BSD_H. Это означает, что этот заголовок файл не защищен от рекурсии, если любой из этих 5 файлов также включает bsd.h (что они делают).

Мое решение состояло в том, чтобы отредактировать файл prevf / os / bsd.h и добавить рекурсию охранник в блоке #else - так, начиная с линии 94 мой Файл prevf / 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...