开发者

Boost wave context concept_check issue

I'm debugging with concept check in boost and gcc. The code finds are error like this

/home/hoffman34/boostlibsinstall64/include/boost/wave/util/
cpp_iterator.hpp:2495:1:   instantiated from

'boost::wave::pp_iterator<boost::wave::context<__gnu_cxx::__normal_iterator<char*, 
std::basic_string<char> >, 
boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<> >, 
boost::wave::iteration_context_policies::load_file_to_string, 
advanced_preprocessing_hooks> >'
../../../../ROSE/src/frontend/SageIII/attachPreprocessingInfo.C:408:34:   instantiated 
from here
/nfs/apps/gcc/4.5.0/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include
/c++/4.5.0/bits/boost_concept_check.h:209:7: error: using invalid field 
'__gnu_cxx::_SGIAssignableConcept<_Tp>::__a'
make[6]: *** [attachPreprocessingInfo.lo] Error 1

It refers me to this line

context_type::iterator_type first = ctx.begin();
context_type::iterator_type last  = ctx.end();

408 is the first line there, but 409 is so similar I imagine it will have the same issue.

context_type is defined as such

typedef boost::wave::context<std::string::iterator, lex_iterator_type, 
boost::wave::iteration_context_policies::load_file_to_string, 
advanced_preprocessing_hooks > context_type;

iterator_type is supposed to be part of context. Does anyone know Boost::Wave enough to know what this me开发者_开发技巧ans?


That's a known issue (see Boost ticket #1079), but not in Wave but in Spirit's (V1.x) parse tree generation code. The concept checking complains about an incomplete type.

This error only pops up when compiling Wave using gcc and with --enable-concept-checks or #define _GLIBCXX_CONCEPT_CHECKS 1.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜