Hi,

The documentation makes clear that epoch is implementation dependent :

   "The library leaves epochs unspecified."

From : http://www.boost.org/doc/libs/1_48_0/doc/html/chrono.html

   "In each of the examples above, a different epoch is implied. Sometimes an epoch has meaning for several millennia. Other times the meaning of an epoch is lost after a while (such as the start of a timer, or when the computer booted). However, if two time_points are known to share the same epoch, they can be subtracted, yielding a valid duration, even if the definition of the epoch no longer has meaning.

In Boost.Chrono, an epoch is a purely abstract and unspecified concept. There is no type representing an epoch. It is simply an idea that relates (or doesn't) time_points to a clock, and in the case that they share a clock, time_points to one another. time_points associated with different clocks are generally not interoperable unless the relationship between the epochs associated with each clock is known."


From http://www.boost.org/doc/libs/1_48_0/doc/html/chrono/users_guide.html


My understanding is that chrono isn't meant to provide absolute time "position", but time measurement and manipulations.
The difference being that epoch is an arbitrary referential used to allow now() to be written and worked with. 

Joël Lamotte