From: Z. T. <to...@gm...> - 2008-07-22 15:08:42
|
Hi, Environment: - XP SP2 32 bit - boost 1.35 - openvrml 0.17.6 - VS 2005 without SP (can not apply because of other API) I try to compile the pretty_print example with VS 2005 and get this: w:\apis\boost\1.35\boost\optional\optional.hpp(302) : error C2061: syntax error : identifier 'm_storage' w:\apis\boost\1.35\boost\optional\optional.hpp(301) : while compiling class template member function 'void boost::optional_detail::optional_base<T>::construct(const openvrml::color &)' with [ T=openvrml::color ] w:\apis\boost\1.35\boost\optional\optional.hpp(440) : see reference to class template instantiation 'boost::optional_detail::optional_base<T>' being compiled with [ T=openvrml::color ] w:\apis\boost\1.35\boost\spirit\core\match.hpp(67) : see reference to class template instantiation 'boost::optional<T>' being compiled with [ T=openvrml::color ] W:\apis\openvrml-0.17.6\src\libopenvrml\openvrml\vrml97_grammar.h(1318) : see reference to class template instantiation 'boost::spirit::match<T>' being compiled with [ T=openvrml::color ] w:\apis\boost\1.35\boost\spirit\utility\functor_parser.hpp(31) : see reference to class template instantiation 'openvrml::vrml97_grammar<Actions>::definition<ScannerT>::mftype_parser<ElementParser>' being compiled with [ Actions=actions, ScannerT=scanner_t, ElementParser=boost::spirit::functor_parser<openvrml::color_parser> ] W:\apis\openvrml-0.17.6\src\libopenvrml\openvrml\vrml97_grammar.h(1361) : see reference to class template instantiation 'boost::spirit::functor_parser<FunctorT>' being compiled with [ FunctorT=openvrml::vrml97_grammar<actions>::definition<scanner_t>::mftype_parser<boost::spirit::functor_parser<openvrml::color_parser>> ] w:\apis\boost\1.35\boost\spirit\core\non_terminal\impl\grammar.ipp(262) : see reference to class template instantiation 'openvrml::vrml97_grammar<Actions>::definition<ScannerT>' being compiled with [ Actions=actions, ScannerT=scanner_t ] w:\apis\boost\1.35\boost\spirit\core\non_terminal\impl\grammar.ipp(281) : see reference to function template instantiation 'void boost::spirit::impl::call_helper<0>::do_<result_t,definition_t,ScannerT>(RT &,DefinitionT &,const ScannerT &)' being compiled with [ ScannerT=scanner_t, RT=result_t, DefinitionT=definition_t ] w:\apis\boost\1.35\boost\spirit\core\non_terminal\grammar.hpp(53) : see reference to function template instantiation 'boost::spirit::match<boost::spirit::nil_t> boost::spirit::impl::grammar_parser_parse<0,openvrml::vrml97_grammar<Actions>,boost::spirit::parser_context<>,ScannerT>(const boost::spirit::grammar<DerivedT> *,const ScannerT &)' being compiled with [ Actions=actions, ScannerT=scanner_t, DerivedT=openvrml::vrml97_grammar<actions> ] w:\apis\boost\1.35\boost\spirit\core\non_terminal\grammar.hpp(63) : see reference to function template instantiation 'boost::spirit::match<boost::spirit::nil_t> boost::spirit::grammar<DerivedT>::parse_main<ScannerT>(const ScannerT &) const' being compiled with [ DerivedT=openvrml::vrml97_grammar<actions>, ScannerT=scanner_t ] w:\apis\boost\1.35\boost\spirit\core\scanner\impl\skipper.ipp(107) : see reference to function template instantiation 'boost::spirit::match<boost::spirit::nil_t> boost::spirit::grammar<DerivedT>::parse<scanner_t>(const ScannerT &) const' being compiled with [ DerivedT=openvrml::vrml97_grammar<actions>, ScannerT=scanner_t ] w:\apis\boost\1.35\boost\spirit\core\scanner\impl\skipper.ipp(153) : see reference to function template instantiation 'boost::spirit::parse_info<IteratorT> boost::spirit::impl::phrase_parser<SkipT>::parse<IteratorT,DerivedT>(const IteratorT &,const IteratorT &,const ParserT &,const SkipT &)' being compiled with [ IteratorT=iterator_t, SkipT=openvrml::vrml97_skip_grammar, DerivedT=openvrml::vrml97_grammar<actions>, ParserT=openvrml::vrml97_grammar<actions> ] W:\apis\openvrml-0.17.6\examples\pretty_print.cpp(432) : see reference to function template instantiation 'boost::spirit::parse_info<IteratorT> boost::spirit::parse<iterator_t,DerivedT,openvrml::vrml97_skip_grammar>(const IteratorT &,const IteratorT &,const boost::spirit::parser<DerivedT> &,const boost::spirit::parser<openvrml::vrml97_skip_grammar> &)' being compiled with [ IteratorT=iterator_t, DerivedT=openvrml::vrml97_grammar<actions> ] |
From: Braden M. <br...@en...> - 2008-07-22 17:55:07
|
On Tue, 2008-07-22 at 17:08 +0200, Zoltán Török wrote: > Hi, > > Environment: > - XP SP2 32 bit > - boost 1.35 > - openvrml 0.17.6 > - VS 2005 without SP (can not apply because of other API) I'm reasonably certain the service pack doesn't change the API. It does fix compiler bugs. Expecting Boost 1.35 (or most any other C++ code released subsequently to it) to work without it is unreasonable. -- Braden McDaniel e-mail: <br...@en...> <http://endoframe.com> Jabber: <br...@ja...> |
From: Z. T. <to...@gm...> - 2008-07-23 08:32:17
|
2008/7/22 Braden McDaniel <br...@en...>: > > I'm reasonably certain the service pack doesn't change the API. It does > fix compiler bugs. Expecting Boost 1.35 (or most any other C++ code > released subsequently to it) to work without it is unreasonable. > I made a clean and fresh VS 2005 install in a VMWare virtual machine (XP SP2). The VS 2005 SP installed also so the compiler is up-to-date. The 'w:\apis\boost\1.35\boost\optional\optional.hpp(302) : error C2061: syntax error : identifier 'm_storage' still appears on (see the original post) static const boost::spirit::functor_parser< mftype_parser< boost::spirit::functor_parser<openvrml::color_parser> > > mfcolor_p; I commented out all color_parser related code. Then the error appears on static const boost::spirit::functor_parser< mftype_parser< boost::spirit::real_parser< float, boost::spirit::real_parser_policies<float> > > > mffloat_p; It seams I couldn't use the openVRML with VS 2005 (VC 8). Zolee |
From: Braden M. <br...@en...> - 2008-07-23 09:17:40
|
On Wed, 2008-07-23 at 10:32 +0200, Zoltán Török wrote: > 2008/7/22 Braden McDaniel <br...@en...>: > > > > > I'm reasonably certain the service pack doesn't change the API. It does > > fix compiler bugs. Expecting Boost 1.35 (or most any other C++ code > > released subsequently to it) to work without it is unreasonable. > > > > I made a clean and fresh VS 2005 install in a VMWare virtual machine (XP > SP2). > The VS 2005 SP installed also so the compiler is up-to-date. > > The 'w:\apis\boost\1.35\boost\optional\optional.hpp(302) : error C2061: > syntax error : identifier 'm_storage' > still appears on (see the original post) > > static const boost::spirit::functor_parser< > mftype_parser< > boost::spirit::functor_parser<openvrml::color_parser> > > > mfcolor_p; > > I commented out all color_parser related code. > Then the error appears on > > static const boost::spirit::functor_parser< > mftype_parser< > boost::spirit::real_parser< > float, > boost::spirit::real_parser_policies<float> > > > > mffloat_p; > > It seams I couldn't use the openVRML with VS 2005 (VC 8). These appear to be problems with that compiler and Boost 1.35.0 that OpenVRML happens to be triggering. I suggest you try Boost 1.34.1. -- Braden McDaniel e-mail: <br...@en...> <http://endoframe.com> Jabber: <br...@ja...> |
From: Z. T. <to...@gm...> - 2008-07-23 11:05:42
|
What would change if I use 1.34.1 instead of 1.35? The openVRML has only project file for only VC 9.0. Which is officialy not supported yet by boost. The boost 1.35 (and 1.34.1) has configuration up to VC 8.0 and it works well with these compilers. It seams there is a conflict between the boost and the openVRML compiler usage. |
From: Braden M. <br...@en...> - 2008-07-23 17:02:25
|
On Wed, 2008-07-23 at 13:05 +0200, Zoltán Török wrote: > What would change if I use 1.34.1 instead of 1.35? I'm not sure exactly. But I think the compiler you're trying to use was the state-of-the-art for most of the 1.34.x lifetime; so perhaps your chances are better. > The openVRML has only project file for only VC 9.0. Which is officialy not > supported yet by boost. > The boost 1.35 (and 1.34.1) has configuration up to VC 8.0 and it works well > with these compilers. Well, apparently 1.35 doesn't work *that* well with VC 8.0, because you've found a problem. > It seams there is a conflict between the boost and the openVRML compiler > usage. I have never seen the problem you're reporting when compiling OpenVRML 0.17.6 with VC 9.0 and Boost 1.35.0. That (and the fact that the error messages you're showing point to Boost code) leads me to conclude that the problem is an incompatibility between Boost 1.35.0 and VC 8.0 that OpenVRML's usage is triggering. I can't promise you that Boost 1.34.1 will work; but I don't have any better suggestions at the moment. -- Braden McDaniel e-mail: <br...@en...> <http://endoframe.com> Jabber: <br...@ja...> |