Boost logo

Boost :

Subject: Re: [boost] [1.53.0] Beta release candidates 2 now available for testing
From: Pyry Jahkola (pyry.jahkola_at_[hidden])
Date: 2013-01-06 05:53:07

On 2013-01-05 23:06:34 +0000, Marshall Clow said:

>>> This is a bug in libc++; std::numeric_limits<>::max() is not marked as
>>> constexpr.
>>> This has been fixed in the libc++ trunk, and should appear in the next
>>> clang/libc++ release.

I faced this issue when patching the HPX library to compile on OS X a
few weeks ago. FWIW, the trunk version of libc++ *does* use constexpr
in std::numeric_limits. It's mostly the Xcode shipped version that
doesn't offer the support. In the meantime, the following is a good
idea IMO:

>> BTW, which version of libc++ are you using?
> The one that ships with Xcode 4.5.2 - the most recent release from Apple.
> I don't believe that libc++ has a version number.

Yes there is such a macro in libc++, the most recent version being:

    #define _LIBCPP_VERSION 1101


The version number has been updating somewhat inconsistently but
according to the SVN history, constexpr support should be there since
(_LIBCPP_VERSION >= 1002).

    $ svn log -r153888
    r153888 | hhinnant | 2012-04-02 22:23:15 +0300 (Mon, 02 Apr 2012) | 1 line

    Update <limits> with constexpr support. Patch contributed by
Jonathan Sauer.

    $ svn log -r164700
    r164700 | hhinnant | 2012-09-26 18:38:09 +0300 (Wed, 26 Sep 2012) | 1 line

    Bump _LIBCPP_VERSION to 1002

I'd recommend having:

    #if defined(_LIBCPP_VERSION)
        #if _LIBCPP_VERSION < 1002
            #define BOOST_NO_CXX11_NUMERIC_LIMITS

Pyry Jahkola

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