
gast128 <gast128@hotmail.com> writes:
BOOST_MPL_ASSERT((boost::mpl::false_))
This gives the same error on VC++ 7.1: "error C2143: syntax error : missing '}' before '('"
I see in 'boost/mpl/assert.hpp' heavy use of the pp library, maybe it has to do with this. I do not get seriuos pp samples running on VC++ 7.1.
No, it must be something else. Works perfectly for me, and I assure you that all of MPL was thoroughly tested on VC 7.1: Program: #include "boost/mpl/assert.hpp" void Testmpl6() { BOOST_MPL_ASSERT((boost::mpl::false_)); } Command: CALL "C:\Program Files\Microsoft Visual Studio .NET \ 2003\VC7\bin\VCVARS32.BAT" > nul cl /Zm800 -nologo /EHsc -c /Z7 /Od /Ob0 /EHsc /GR /MDd /Op /Zc:wchar_t,forScope -I"c:\boost" -Fo"c:\tmp\foo.obj" -Tp"c:\tmp\foo.cpp" Output: foo.cpp(6) : error C2664: 'boost::mpl::assertion_failed' : cannot convert parameter 1 from 'boost::mpl::failed ************boost::mpl::bool_<C_>::* *********** ' to 'boost::mpl::assert<false>::type' with [ C_=false ] A reference that is not to 'const' cannot be bound to a non-lvalue foo.cpp(6) : fatal error C1903: unable to recover from previous error(s); stopping compilation And of course, if I replace "false_" with "true_", compilation succeeds. Can you reporoduce these results with the same program and command-lines? -- Dave Abrahams Boost Consulting http://www.boost-consulting.com