Boost logo

Boost :

From: Aleksey Gurtovoy (alexy_at_[hidden])
Date: 2002-03-10 21:19:33


The header checks for _MSC_VER (in several places) in order to determine if
a trait class template specialization for '__int64' is needed/valid, e.g.

    # if defined(BOOST_HAS_LONG_LONG)
    template <> struct is_integral<unsigned long long>
    { BOOST_STATIC_CONSTANT(bool, value = true); };
    template <> struct is_integral<long long>
    { BOOST_STATIC_CONSTANT(bool, value = true); };
    #elif defined(__BORLANDC__) || defined(_MSC_VER) // <-- here
    template <> struct is_integral<unsigned __int64>
    { BOOST_STATIC_CONSTANT(bool, value = true); };
    template <> struct is_integral<__int64>
    { BOOST_STATIC_CONSTANT(bool, value = true); };
    #endif

The check is troublesome because not all compilers that define _MSC_VER
provide intrinsic __int64 type, - in particular Comeau for Windows does not
(don't know about the Intel). So, the above condition should at least check
for BOOST_MSVC, and may be even for a particular version of it, as it's done
in "boost/cstdint.hpp".

Aleksey


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