Boost logo

Boost :

Subject: Re: [boost] [1.53.0] Beta release candidates 2 now available for testing
From: Marshall Clow (mclow.lists_at_[hidden])
Date: 2013-01-05 18:06:34


On Jan 5, 2013, at 2:45 PM, Vicente J. Botet Escriba <vicente.botet_at_[hidden]> wrote:

> Le 05/01/13 18:37, Marshall Clow a écrit :
>> On Jan 4, 2013, at 11:25 AM, Marshall Clow <mclow.lists_at_[hidden]> wrote:
>>
>>> Updated release candidate files for 1.53.0 beta 1 are available at
>>> http://boost.cowic.de/rc/
>>>
>>> As always, the release managers would appreciate it if you download
>>> the candidate of your choice and give building it a try. Please report
>>> both success and failure, and anything else that is noteworthy.
>> I built the RC on Mac OS X with both clang and gcc w/o errors.
>> However, when I built using clang and libc++ in C++11 mode, I found two problems:
>>
>> ./b2 toolset=clang cxxflags="-std=c++11 -stdlib=libc++ -Wno-unused-variable" linkflags="-stdlib=libc++"
>>
>> Issue #1:
>>
>>> clang-darwin.compile.c++ bin.v2/libs/chrono/build/clang-darwin-11/release/threading-multi/chrono.o
>>> In file included from libs/chrono/src/chrono.cpp:14:
>>> In file included from ./boost/chrono/detail/inlined/chrono.hpp:13:
>>> In file included from ./boost/chrono/chrono.hpp:11:
>>> ./boost/chrono/duration.hpp:353:49: error: constexpr function never produces a constant expression
>>> static BOOST_CHRONO_LIB_CONSTEXPR float lowest() BOOST_CHRONO_LIB_NOEXCEPT_OR_THROW
>>> ^
>>> ./boost/chrono/duration.hpp:355:21: note: non-constexpr function 'max' cannot be used in a constant expression
>>> return -(std::numeric_limits<float>::max) ();
>>> ^
>>> /usr/bin/../lib/c++/v1/limits:443:43: note: declared here
>>> _LIBCPP_INLINE_VISIBILITY static type max() _NOEXCEPT {return __base::max();}
>>> ^
>> 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.
>
> Hi, I defined BOOST_CHRONO_LIB_CONSTEXPR as follows to avoid this problem.
>
> #if defined( BOOST_NO_CXX11_NUMERIC_LIMITS )
> #define BOOST_CHRONO_LIB_CONSTEXPR
> #else
> #define BOOST_CHRONO_LIB_CONSTEXPR BOOST_CONSTEXPR
> #endif
>
> Shouldn't BOOST_NO_CXX11_NUMERIC_LIMITS be defined as it doesn't providesa C++11 implementation, or should Boost.Chrono take in account the missing feature of libc++ individually?

I'm not sure what you are referring to with the word "it" in that sentence.

> 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.

-- Marshall

Marshall Clow Idio Software <mailto:mclow.lists_at_[hidden]>

A.D. 1517: Martin Luther nails his 95 Theses to the church door and is promptly moderated down to (-1, Flamebait).
        -- Yu Suzuki


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