Boost logo

Boost :

Subject: Re: [boost] [1.48.0] TypeTraits additions
From: Michel Morin (mimomorin_at_[hidden])
Date: 2011-10-11 22:31:50

Frédéric Bron wrote:
> I have seen that but honestly, I do not know how to improve the
> situation. I would need to have a clang compiler. I will try to
> install it on my linux machine but I guess the time to release is now
> very short.

OK, let's think about <boost/type_traits/has_negate.hpp>.
Minimal test case:

    #include <iostream>
    #include <boost/type_traits/has_negate.hpp>

    struct XXX { };

    int main (int argc, char* argv[])
        std::cout << boost::has_negate<XXX>::value << std::endl;

        return 0;

Clang's compilation error:

      call to function 'operator-' that is neither visible in the template
      definition nor found by argument-dependent lookup
        BOOST_STATIC_CONSTANT(bool, value =

The error occurred because

    no_operator operator BOOST_TT_TRAIT_OP (const any&);

is declared too late (line 135 in has_prefix_operator.hpp).
Is it possible to move "Step 4" (line 122-135) before "Step 2" (line 51-74)?
This removes the compilation errors in has_negate_test.cpp.
I think other test failures on clang can be fixed in a similar way.


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