On Thu, 19 Jun 2003 17:15:11 -0400, Stefan Seefeld wrote > little precision: > > the posix_time::time_duration type seems to come close to > what I want. However, the documentation isn't very clear on > what 'fractional_seconds()' actually stands for.
fractional_seconds is a count. It is relative to the resolution the time_duration supports. So if the time_duration supports 'tenths of seconds' then fractional_seconds value of 1 is 1/10 of a second. In this configuration the maximum value fractional seconds would return is 9 since 10 rolls over to a new second. With the standard configuration the count will be the number of nano seconds. To get this you have to define a macro BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG. This is discussed on the BuildInfo page: http://www.crystalclearsoftware.com/libraries/gdtl/user_docs/BuildInfo.html Anyway, you can find out the resolution you are using with this code: #include "boost/date_time/posix_time/posix_time.hpp" #include <iostream> //Must match with time_resolutions enum in date_time/time_defs.h const char* const resolution_names[] = {"Second", "Deci", "Centi", "Milli", "Ten_Thousanth", "Micro", "Nano"}; int main() { using namespace boost::posix_time; std::cout << "Resolution: " << resolution_names[time_duration::rep_type::resolution()] << " -- Ticks per second: " << time_duration::rep_type::res_adjust() << std::endl; } > Does the 'unit()' function return 1 unit expressed in nanoseconds ? > If so, why is it returning a time_duration and not a long (say) ? It returns 1 unit in whatever the resolution of the time duration is. This is used so that the 'time_period' can generically increment a time period without needing to know the resolution of the time_duration. Jeff _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost