Boost logo

Boost :

Subject: Re: [boost] [config] [chrono] consexpr workaround
From: Krzysztof Czainski (1czajnik_at_[hidden])
Date: 2013-03-19 17:25:44


2013/3/19 Vicente J. Botet Escriba <vicente.botet_at_[hidden]>

> Le 19/03/13 17:00, Krzysztof Czainski a écrit :
> So now, narrowing the question to use of
>
>> BOOST_CONSTEXPR in Boost.Chrono:
>> 1. Could the functions marked BOOST_CONSTEXPR be also marked inline (and
>> this question probably applies to other Boost libraries)?
>> 2. This is probably related only to the TI compiler I use: marking
>> constructors inline doesn't work for me, they need to be marked
>> BOOST_FORCEINLINE (I've configured it), so could the constexpr
>> constructors
>> in Boost.Chrono be marked with BOOST_FORCEINLINE as well?
>>
>> Hi,
>
> could you point me to the cases that need to be inlined that the compiler
> doesn't inline by itself?
>
> Please create a ticket so that I don't forget it.
>
> Best,
> Vicente

Hi Vincente,

Thanks for looking at this.

I think this TI compiler doesn't inline anything not marked inline.
Additionally it doesn't seem to inline constructors, unless marked
BOOST_FORCEINLINE [1].

So if there aren't any thoughts against this, I suggest all constexpr
functions in duration and time_point to be marked inline, and constexpr
constructors to be marked forceinline. Or should I just touch the cases,
that need to be inline in my example situation? I'd prefer the former ;-)

I'll create a ticket and supply a patch shortly.

Cheers,
Kris

[1] The TI compiler supports the GCC extension attribute forceinline.


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