首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用boost图形库时BOOST_concept重新定义的警告

使用boost图形库时BOOST_concept重新定义的警告
EN

Stack Overflow用户
提问于 2011-05-04 01:42:49
回答 2查看 365关注 0票数 1

我正在XCode 3.2.6上构建一个项目,其中使用了boost图形库(1.45)。构建会导致一个恼人的警告:

代码语言:javascript
复制
/include/boost/concept/detail/concept_def.hpp:34:1: warning: "BOOST_concept" redefined

concept_def.hpp似乎没有包含任何保护来防止这种多重定义,并且boost图形库似乎是为了确保它被多次包含而构建的。在我的例子中,包含的序列是:

一种定义是:

代码语言:javascript
复制
/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,

另一种定义:

代码语言:javascript
复制
/include/boost/concept/detail/concept_def.hpp:34
/include/boost/graph/graph_concepts.hpp:25,
/include/boost/graph/detail/adjacency_list.hpp:31,

虽然这只是一个警告,但我发现很难相信这是通过boost发布的,因此我认为我做错了什么。

有什么想法吗?

谢谢,

巴里

EN

回答 2

Stack Overflow用户

发布于 2011-05-25 11:21:33

错误似乎只发生在XCode上,我们所有的其他平台(linux gcc4,msvc2010)都构建得很好。

以下是我们的解决方法:

增强/概念/细节/概念_定义.hpp:12

代码语言:javascript
复制
#ifdef BOOST_concept
# undef BOOST_concept
#endif

PS:如果你想知道为什么我们不在整个文件周围放置一个#ifndef守卫,那么要知道,由于某种奇怪的原因,这是不起作用的!

票数 1
EN

Stack Overflow用户

发布于 2012-03-22 23:21:53

页面中发布的问题与我们遇到的问题相同。以下是我们基于连接的解决方案

如果文件开头包含#

,则在hpp文件的末尾添加#include。

我们在buffer_concepts.hpp的末尾添加了相应的include concept_undef.hpp,它确实解决了编译错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5873456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档