|
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