Boost logo

Boost Users :

From: David Abrahams (dave_at_[hidden])
Date: 2004-11-24 22:17:35


gast128 <gast128_at_[hidden]> 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

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net