Boost logo

Boost :

Subject: Re: [boost] [1.48.0] TypeTraits additions
From: Frédéric Bron (frederic.bron_at_[hidden])
Date: 2011-10-12 01:21:56


>> 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.
>
> Follow-up:
> After fixing detail/has_binary_operator.hpp, has_postfix_operator.hpp
> and has_prefix_operator.hpp (by moving "Step 4" before "Step 2"),
> all the tests ran successfully on clang (trunk) both in C++03 and C++11 modes.

Dear Michel,

Thank you very much for your message. At some point I changed
something in the implementation and had to reorder the steps in the
detail namespace. I did not see that the definition of the detail
operator was coming too late but nothing told me the contrary because
there was no failure with g++ and intel-linux. Now that you say it, I
wonder why it works for other compilers!

I have applied the changes and all tests still pass with g++ 4.5.2 and
4.6.1 and intel-linux 11 and 12. So I believe it is safe.
Committed to trunk r74924. Can you rerun the test on the trunk? I will
then ask for permission to merge to release if everything is fine (I
would also wait for new testing with msvc).

Frédéric


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