
----- Original Message ----- From: "joel falcou" <joel.falcou@lri.fr> To: <boost@lists.boost.org> Sent: Thursday, November 11, 2010 9:25 PM Subject: Re: [boost] [Review] Formal Review of Proposed Boost.Chrono Library Starts TOMORROW
On 11/11/10 20:40, John Bytheway wrote:
Right; I see that. My point was that the implementation of getticks itself has lots of platform-specific code in it, and something equivalent might be usefully added to Boost (but probably not in Boost.Chrono).
Can't boost.Chrono concept wraps aroudn the concept of cycles and providde a wrapper around rdtsc adn its ilk ? Or is it more a work for StopWatch ?
Sorry for the late response, I missed this post. As I said in another post it is very simple for the user to define a clock based on whatever cycle count the user can provide: template <long long speed> struct cycle_count_clock { typedef typename boost::ratio_multiply<boost::ratio<speed>, boost::mega>::type frequency; // Mhz typedef typename boost::ratio_divide<boost::ratio<1>, frequency>::type period; typedef long long rep; typedef boost::chrono::duration<rep, period> duration; typedef boost::chrono::time_point<cycle_count_clock> time_point; static time_point now() { // return exact cycle count return time_point(duration(provided_by_the_user::getticks())); // access to clock cycle count } }; Boost.Chrono could provide sych a class, but the getticks() function should be provided by the user. If someone is able to provide a portable getticks() function (I'm myself unable to do it) and include it in Boost, Boost.Chrono will definitely use it to provide this cycle_count_clock. StopWatch is at high level and builds on top of Boost.Chrono. Best, Vicente