#include <boost/chrono/chrono.hpp>
#include <boost/type_traits.hpp>
#include <iostream>
using namespace boost::chrono;
void explore_limits()
{
typedef duration<long long, boost::ratio_multiply<boost::ratio<24*3652425,10000>,
hours::period>::type> Years;
#ifdef BOOST_CHRONO_HAS_CLOCK_STEADY
steady_clock::time_point t1( Years(250));
steady_clock::time_point t2(-Years(250));
#else
system_clock::time_point t1( Years(250));
system_clock::time_point t2(-Years(250));
#endif
microseconds d = time_point_cast<microseconds>(t1) - time_point_cast<microseconds>(t2);
std::cout << d.count() << " microseconds\n";
}
int main()
{
explore_limits();
return 0;
}