Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2002-04-01 08:58:16


From: "Giovanni Bajo" <giovannibajo_at_[hidden]>
> From: "Peter Dimov" <pdimov_at_[hidden]>
> > The fact that you are hitting the void return workaround code path means
> > that you are using Comeau in MSVC 6 compatibility mode; either
> > BOOST_NESTED_TEMPLATE is not defined to 'template', or there is a bug in
> > Comeau.
>
> I've checked and BOOST_NESTED_TEMPLATE is correctly defined as 'template'.
> It looks like a compiler bug then.
> Undefining BOOST_NO_VOID_RETURNS worked well for me in strict mode, while
it
> fails when compiling in Microsoft compatibility mode. The #if test in
> comeau.hpp only checks if Comeau is using MSVC6 as a backend, but it does
> not check if it is working in strict mode or not. It would not be a
problem
> of course if the void return workaround compiled correctly.

I don't have access to Comeau C++ so I can't test how it behaves in its
various modes. I assumed that when _MSC_VER is defined, then the compiler is
in MSVC compatibility mode. Are you saying that in strict mode _MSC_VER is
still defined, but the void returns work? If so, can you post a patch to
boost/config/compiler/comeau.hpp?

Also, did you try to run Comeau in MSVC 7 mode? I'm fairly certain that void
returns work. The option was --microsoft-ver=1300 IIRC but I may be wrong.

(The void returns path is problematic in general. It works on MSVC 6 and on
EDG 2.38 (?) but few other compilers can cope.)


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk