removed that inheritance relation; it was a typical
example of abusing inheritance and violated the
Liscov substitution principle. It is sufficient
to allow promotion of an offset into a Duration.
Note: Duration is the time metric
Note: it's rather arbitrary choosen,
because any time grid can define its own origin.
You must not assume that the origin of any time axis
is located at Time::ZERO !!
this is the first building block in an attempt to
protrect against time wraparound. The intention is
not to be airtight, but practically effective.
A really airtight solution would require writing
our own SafeInt class
namespace lib::time
lumitime.cpp will define the basic time wrapper
quantiser.cpp the grid alitnment and formatting wrapper
header for
- timevalues / ranges
- quantised time valuse
- timecode valuse
"lumitime.hpp" will contain the interface facilities