Boost logo

Boost :

Subject: Re: [boost] [chrono] Interoperability with ICL and common concepts
From: Joachim Faulhaber (afojgo_at_[hidden])
Date: 2011-03-15 14:00:41


2011/3/15 Stewart, Robert <Robert.Stewart_at_[hidden]>:
> Joachim Faulhaber wrote:
>>
>> The possibility of default ctor customization is no remedy, because
>> ICL should ideally be completely "chrono agnostic" and still
>> interoperable. For the same reason duration::zero() is not an option.
>
> Why can't ICL have a customization point for the identity value that
> defaults to T()?  Then chrono can customize that (assuming there
> is a suitable value to use).

Hi Robert :)

Hmm ... good simple question. So this implies a solution like this:

//=== in or under boost/chrono/chrono.hpp ==================

namespace boost{namespace icl
{
    template<class Type>struct identity_element;

    template<class Rep, class Period>
    struct identity_element<boost::chrono::duration<Rep,Period> >
    {
        typedef boost::chrono::duration<Rep,Period> duration_type;
        typedef identity_element type;

        static duration_type value()
        {
            return duration_type::zero();
        }
    };
}}

//==========================================================

right?

Joachim

-- 
Interval Container Library [Boost.Icl]
http://www.joachim-faulhaber.de

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