Boost logo

Boost :

Subject: Re: [boost] Proposed templated integer_sort
From: Steven Ross (spreadsort_at_[hidden])
Date: 2009-02-01 18:11:36


On Wed, Jan 14, 2009 at 10:26 AM, Steven Watanabe <watanabesj_at_[hidden]>wrote:

> AMDG
> Phil Endecott wrote:
>
>> It would be good if it were possible to automatically detect whether a
>> floating point type is one for which the cast-to-integer trick works. It
>> would be great if C++ defined some macro or similar that defined whether
>> float and double were IEEE 754 or not. (Hmm, is there some sort of
>> type_traits thing to do this?).
>>
>
> Are you thinking of std::numeric_limits<>::is_iec559?
>
>
I've added these static assertions in the casting methods:
    BOOST_STATIC_ASSERT(sizeof(cast_type) == sizeof(data_type));
    BOOST_STATIC_ASSERT(std::numeric_limits<data_type>::is_iec559);
    BOOST_STATIC_ASSERT(std::numeric_limits<cast_type>::is_integer);
That should guarantee I'm casting an IEEE floating-point number to an
integer of the same size.

Also, using toolset=darwin resolved by bjam issue, and my tests run and pass
now.

Thanks for your help Steve.


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