Boost logo

Boost :

From: Giovanni Bajo (giovannibajo_at_[hidden])
Date: 2002-06-24 18:30:11

I tried compiling your library with Comeau 4.3.0.

Visitor.hpp misses a typename on line 156 (for select_if_c<>::type). Then,
the compilation of variant_test dies with this error:

"d:\boost_1_28_0\boost/mpl/lambda.hpp", line 129: error: the type of partial
          specialization template parameter template template parameter "F"
          depends on another template parameter

Now, since lambda.hpp, for a dummy like me, is just as readable as Hungarian
(no offense intended, for either), I don't have the faintest idea about
what's going on.

Variant_test takes about 5 minutes to compile. Maybe you can work with our
resident EDG PP wizard Paul to implement some of his tricks in your code (or
was it just a global fix to the PP library? I haven't followed the thread
that deeply). It's a bit frustrating to work with this file right now :)

Anyway, mpl/contains.hpp misses typename on line 30 (find<>::type and
end<>::type). variant.hpp misses typename on line 317 (select_if<>::type)
and on line 729 (end<>::type). Line 552 refers to ptr_to_initialize_, which
is a member of a base class dependent on a template paramter, which is not
in the default name lookup from within a member function. You can fix this
with either this->ptr_to_initialize_, or base::ptr_to_initalize_ (I prefer
the former, because it's more explicit that it's a member of the current
class, the latter might refer to a static data member in some other class,
at first sight).

There are other errors, which I'll report tomorrow (in a rush now, sorry).
I'd be grateful if you can work on a version which compiles faster on
Comeau, it'd help these tests (and the actual use of the library) greatly.

Giovanni Bajo

----- Original Message -----
From: "Eric Friedman" <ebf_at_[hidden]>
To: "Boost Mailing List" <boost_at_[hidden]>
Sent: Tuesday, June 25, 2002 12:02 AM
Subject: RE: [boost] Variant (aka Discriminated Union) implementation

> Despite having received no feedback <g>, I continued to work on my
> boost::variant implementation over the weekend. The product of my labors
> is a variant that has been tested successfully with GCC 2.9.5 and MSVC
> 7.
> The new version is available at
> -- I've renamed
> the old one.
> I would really appreciate if I could get feedback (public or private) on
> this work; I think it addresses most of the issues raised by the Boost
> community in the "Proposal --- A type-safe union" thread that bounced
> around a few weeks ago. I am aware that my implementation lacks support
> for recursive types, and I intend to address this issue next.
> Thanks,
> Eric

Boost list run by bdawes at, gregod at, cpdaniel at, john at