Boost logo

Boost :

From: Aleksey Gurtovoy (agurtovoy_at_[hidden])
Date: 2003-09-24 03:22:21


my code -> utility -> type_traits -> mpl -> ERRORDirk Griffioen wrote:
> Hi all,
>
> why does boost/type_traits/detail/bool_trait_def.hpp include
> boost/mpl/bool.hpp ??

Because otherwise it would have to duplicate its content.

> which means I get a link ERROR: Undefined symbol:
> boost::mpl::bool_<0>::value

Which probably means your compiler is wrong.

> in code that seemingly nowhere includes anything near MPL (on
> AIX 433 with xlc6 and STLport), but merely mortal stuff like
> boost/shared_ptr or boost/utility.
>
> o, I forgot, utility passes type_traits passes, well, mpl.
>
> Yes I tried, utility_fwd where applicable and also outcommenting
> some stuff in utility.hpp and No I do think everything will work
> at once. But I do no understand why I have to suffer from this
> from my point of view uneccesary dependancy.

You are not suffering from a dependency, you are suffering from a compiler
bug. 'mpl::bool_<0>' or 'whatever<0>', you'd still get the same error.

> Can anyone please help? Or give me a pointer say
> "USE_THIS_HELPFULL_MACRO"?

Are you able to compile and link this one:

    template< bool C_ > struct bool_
    {
        static bool const value = C_;
    };

    template< bool C_ > bool const bool_<C_>::value;

    template< typename T > struct is_const : bool_<false> {};
    template< typename T > struct is_const<T const> : bool_<true> {};

    template< typename T, bool C_ = is_const<T>::value >
    struct something {};

    int main()
    {
        something<int> volatile s;
        return 0;
    }

?

> Thanks in advance..
>
> (MPL http://www.boost.org/libs/mpl/doc/index.html#details.depend
> mentions it depends ON the type_traits lib, and not the other
> way around, if both - isn't this circular?)

It is, and it isn't. It has nothing to do with your problem, though.

Aleksey


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