
2011/3/15 Stewart, Robert <Robert.Stewart@sig.com>:
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