
Silex wrote:
Hello
Here attached is the latest version of the boost::timer modification.
About doing the documentation I must say that QuickBook & BoostBook confused me. I understand QuickBook generates BoostBook's documentation but how to use it ?
At the moment I'm only doing the documentation in a plain text file waiting for your answers... I *think* I understood that I'm supposed to write a .qbk file, but how to then make Spirit generate the xml for BoostBook is beyond me, I'm not used to Spirit yet.
Hi Philippe - Sorry I haven't got a chance to look at this till now. First, it might be nice if you could upload a version to the vault so other people can try it out. http://boost-consulting.com/vault/index.php?&direction=0&order=&directory=date_time Now a couple questions on the code. What is the time_duration_type elapsed() const { if(m_start.QuadPart) { LARGE_INTEGER current; if(!QueryPerformanceCounter(¤t)) throw std::runtime_error("qpc: QueryPerformanceCounter() failed"); boost::uint64_t milliseconds = (current.QuadPart - m_start.QuadPart) / m_frequency.QuadPart; boost::uint32_t seconds = milliseconds / 1000; boost::uint32_t minutes = seconds / 60; boost::uint32_t hours = minutes / 60; milliseconds = milliseconds % 1000; m_elapsed += time_duration_type(hours, minutes, seconds, milliseconds); m_start = current; } return m_elapsed; } I think this code is both inefficient and likely non-portable. As I understand it, QueryPerformanceCounter has a hardware defined resolution that can be queried by calling QueryPerformanceFrequency. QPF provides the counts per second. You should be able to use this to more simply construct the time_duration. So, for example, if QPF returned 1000 you could simply say m_elapsed += boost::posix_time::milliseconds(current-previous); I'm guessing nanoseconds might be the best duration type to use in the calculation. Thx for your effort in this area. Jeff