BOOST_concept переопределено предупреждение при использовании библиотеки графов повышения - PullRequest
1 голос
/ 03 мая 2011

Я строю проект на XCode 3.2.6 gcc 4.2, в котором используется библиотека графов надстроек (1.45). Сборка приводит к раздражающему предупреждению:

/include/boost/concept/detail/concept_def.hpp:34:1: warning: "BOOST_concept" redefined

concept_def.hpp, по-видимому, не содержит никакой защиты для предотвращения такого рода многократного определения, и библиотека графов надстроек, кажется, построена так, чтобы обеспечить ее включение несколько раз. В моем случае включаемые последовательности:

Одно определение:

/include/boost/concept/detail/concept_def.hpp:34
/include/boost/graph/buffer_concepts.hpp:9,
/include/boost/graph/graph_concepts.hpp:21,
/include/boost/graph/detail/adjacency_list.hpp:31,

Другое определение:

/include/boost/concept/detail/concept_def.hpp:34
/include/boost/graph/graph_concepts.hpp:25,
/include/boost/graph/detail/adjacency_list.hpp:31,

Хотя это только предупреждение, мне трудно поверить, что оно было выпущено с наддувом, и, следовательно, ожидать, что я делаю что-то не так.

Есть идеи?

Спасибо

1018 * Бэрри *

Ответы [ 2 ]

1 голос
/ 25 мая 2011

Ошибка, похоже, возникает только на XCode, все остальные наши платформы (linux gcc4, msvc2010) работают нормально.

Вот наш обходной путь:

увеличение / концепция / подробно / concept_def.hpp: 12

#ifdef BOOST_concept
# undef BOOST_concept
#endif

PS: Если вам интересно, почему мы не ставим защиту #ifndef вокруг всего файла, то знайте, что по какой-то странной причине это не работает!

0 голосов
/ 22 марта 2012

Проблема, опубликованная на странице, та же, с которой мы столкнулись. Ниже приводится наше решение на основе

добавить #include в конец hpp-файла, если он включен в начало файла.

мы добавили include concept_undef.hpp в конце buffer_concepts.hpp соответственно и это решило ошибку компиляции.

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