Boost logo

Boost Users :

From: Joaquín M López Munoz (joaquin_at_[hidden])
Date: 2006-11-23 14:56:55


Markus Werle <numerical.simulation <at> web.de> writes:

>
> Hi!
>
> I am out of ideas here, but somebody probably fell into that trap
> before. Since the error message points to unrelated code, I hope
> to get some idea via Boost:
>
> boost_1_33_1\boost/multi_index/ordered_index.hpp(445) : error C2143:
> syntax error : missing ',' before '.'
>
> Since I had VC8 messing things up before I bet it is the
> #include order again, but I could not find the offending header yet.
>
> Markus

Hello Markus,

My hunch is that this is indeed just a compiler quirk, specially
since you've reported that the problem is not reproducible
in GCC. You can try the following:

1. What Boost version are you using? Line 445 of ordered_index.hpp
in Boost 1.33.1 does not even contain a '.' character. You might
try downloading a snapshot of RC_1_34_0:

http://www.meta-comm.com/engineering/boost/snapshot/boost-RC_1_34_0.tar.bz2

and see if VC 8.0 is happier with that.

2. Play with precompiled header options, increase the memory
available to the compiler with /Zm, switch from /ZI to a less
demanding type of debugging info, disable /Gm. All these options
have been proved to be beneficial in VC 6.0, maybe you're lucky
in VC 8.0 as well.

3. Try using type hiding to reduce the lengths of symbols
produced by multi_index containers definitions:

http://boost.org/libs/multi_index/doc/compiler_specifics.html#type_hiding

4. Tag usage increase the level of stress the compiler is
put under. Try elminating them in the definition of value_storage_t
and acess indices by ordinal instead. You can retain some of the
mnemonic nature of tags with enums:

enum{
  as_int=1,
  as_string=2
};

Please keep me informed of your progress with this. Good luck,

Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo


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