Hi,
On Tue, Dec 27, 2005 11:13 am, John Maddock wrote:
As I revealed there is a compiler detection mechanism in file
boost\config\compiler\visualc.hpp but I couldn't find
out how exactly it is used.
I'd like to identify all Boost libraries which can not be used with
eVC++. Could anyone give me a few hints about how to start such
identification? Are there any macro definitions or can I expect that
visualc.hpp can
help me in this task?
I suspect there was a bug in visualc.hpp that causes that #error to be
generated in almost all cases with eVC++ (it's been fixed in cvs), so try
commenting out the offending #error. After that if it compiles then it'll
likely work (but try running a test program or two to make sure).
Thank you for your suggestion.
Indeed, it solved the problem.
I commented line 131 in the file boost/config/compiler/visualc.hpp
Unfortunately we've never had anyone run the tests regularly on embedded
platforms so your mileage may vary: so any feedback will be gratefully
received!
Unfortunately, uncommenting that check solved the problem but partially.
As my next testes, I tried to use Boost.Any and I see there are compilere
related checks still present.
When I include the any.hpp
#include
and I'm getting this error message (I have to confess that it's hard for
me to decipher it :-))
c:\boost\include\boost-1_33_1\boost\mpl\aux_\yes_no.hpp(42) : error C2265:
'<Unknown>' : reference to a zero-sized array is illegal
c:\boost\include\boost-1_33_1\boost\mpl\aux_\yes_no.hpp(47) : see
reference to class template instantiation
'boost::mpl::aux::weighted_tag<n>' being compiled
c:\boost\include\boost-1_33_1\boost\type_traits\broken_compiler_spec.hpp(23)
: fatal error C1506: unrecoverable block scoping error
The message above relates to the following check of compiler:
#if !BOOST_WORKAROUND(BOOST_MSVC, == 1200)
typedef char (&type)[n];
#else
I'd not want to send every such message and asking what to do with it.
I think it could be a little annoying, but may be the problem relates to
the bug in boost/config/compiler/visualc.hpp you mentioned above.
Second, I will try to investigate every such problem and find out if there
is possible some workaround. Certainly, it may be sometimes impossible for
me to find the solution because I'm a Boost newbie user, yet.
May be you could suggest what path should I follow in this job?
I mean, with what Boost libraries should I start first? Which libraries
are supposed to be less incompatible with VC++6.0/eVC++4.0?
Thank you in advance
Best regards
p.s. As I explained in my response to Victor A. Wagner's post
I'm not able to move to VC++ 2005 so I'll stay with eVC++ 4.0 for now.
--
Mateusz Łoskot
http://mateusz.loskot.net