Boost logo

Boost :

From: Itay (itay_maman_at_[hidden])
Date: 2002-07-10 03:58:02


Thanks a lot, Giovanni

> .. MSVC7 just ICEd on variant.hpp:293 and I couldn't fix it with some
stupid workaround I came
> up with, but I'm no MSVC expert.
This strikes me as odd: variant.hpp:293 is enclosed within the #else section
of
#ifdef BOOST_VARIANT_NO_ASSIGN_HELPER.

But, BOOST_VARIANT_NO_ASSIGN_HELPER should be #define-d (line 49), so I
can't see how this line got thru ?!

-Itay

One thing
"Giovanni Bajo" <giovannibajo_at_[hidden]> wrote in message
news:0a1601c227ad$8aca1480$7a4e2a97_at_bagio...
>
> ----- Original Message -----
> From: "Itay" <itay_maman_at_[hidden]>
> Newsgroups: gmane.comp.lib.boost.devel
> To: <boost_at_[hidden]>
> Sent: Wednesday, July 10, 2002 2:31 AM
> Subject: [boost] boost::variant 0.2 (was: Yet another variant class)
>
>
> > I just uploaded the recent version of boost::variant to the file section
> > (http://groups.yahoo.com/group/boost/files/boost_variant_100702.zip)
This
> > version has been successfully tested on GCC 3.0.4, MSVC 6.
>
> rdsl.hpp: missing "typename" keyword on line 820.
> variant.hpp: missing "typename" keyword on lines 80, 338.
> variant.hpp: missing "template" keyword before all the nested template
> accesses. Just look for all "::inner<" occurrences and substitute with
> "::template inner<"
>
> variant.hpp has also another error: the nested class/unions can't access
the
> typedefs declared in the enclosing class. This affects inner_union and
> type_desc_helper (within stack_holder). I fixed inner_union moving the
> typedefs within the union, and making the union friend (so that it can
> access private member t_self::align):
>
> union inner_union;
> friend union inner_union;
>
> union inner_union
> {
> typedef stack_holder<Sequence> t_self;
>
> #ifdef BOOST_MSVC
> typedef typename type_with_alignment<(align > 8 ? 8 : align)>::type
> t_aligner;
> #else
> typedef typename type_with_alignment<t_self::align>::type t_aligner;
>
> #endif file://BOOST_MSVC
>
> typedef char t_buffer[max_size];
>
> t_aligner aligner_;
> t_buffer buf_;
> }; file://inner_union
>
> typedef inner_union::t_aligner t_aligner;
> typedef inner_union::t_buffer t_buffer;
>
> I don't know if this solution works for MSVC6 as well. type_desc_helper is
> much easier to fix, just change the occurrence of t_sequence to Sequence
> (the template parameters of the enclosing class do have visibiliy in the
> nested classes).
>
> Finally, Comeau couldn't still compile the code due to an internal problem
> (it generates symbol names too long for VC to handle them!). MSVC7 just
ICEd
> on variant.hpp:293 and I couldn't fix it with some stupid workaround I
came
> up with, but I'm no MSVC expert.
>
> Giovanni Bajo
>
> _______________________________________________
> Unsubscribe & other changes:
http://lists.boost.org/mailman/listinfo.cgi/boost
>


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