
I'll turn it around the other way. Most instances of microsecond_clock never care about the a time_zone to adjust the time. So there is no reason to drag in that dependency. But, in fact, the overloading I pointed out above:
template<class time_type> class microsecond_clock { ... template<class time_zone_type> static time_type local_time(shared_ptr<time_zone_type> tz_ptr);
enables the microsecond clock to use a time zone. When using a local_date_time type the timezone is required. So it's true, you'll get a compile error if you try to call the other overloadings with a local_date_time, but that's the intent.
"... practicality beats purity" It would be nice to have small comment within source code or reference to documentation that explains why this is intent and\or work around to the problem.
Jeff
Thanks for help Roman Yakovenko