|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r64838 - sandbox/chrono/boost/chrono
From: vicente.botet_at_[hidden]
Date: 2010-08-15 17:43:54
Author: viboes
Date: 2010-08-15 17:43:53 EDT (Sun, 15 Aug 2010)
New Revision: 64838
URL: http://svn.boost.org/trac/boost/changeset/64838
Log:
Towards making process_cpu_clock::times an arithmetic type so process_cpu_clock can be a Clcok
Text files modified:
sandbox/chrono/boost/chrono/process_cpu_clocks.hpp | 28 ++++++++++++++++++++++++++--
sandbox/chrono/boost/chrono/stopclock.hpp | 4 ++--
2 files changed, 28 insertions(+), 4 deletions(-)
Modified: sandbox/chrono/boost/chrono/process_cpu_clocks.hpp
==============================================================================
--- sandbox/chrono/boost/chrono/process_cpu_clocks.hpp (original)
+++ sandbox/chrono/boost/chrono/process_cpu_clocks.hpp 2010-08-15 17:43:53 EDT (Sun, 15 Aug 2010)
@@ -54,8 +54,9 @@
class BOOST_CHRONO_DECL process_cpu_clock
{
public:
- struct times : arithmetic<times>, less_than_comparable<times>
+ struct times : arithmetic<times, multiplicative<times, process_real_cpu_clock::rep, less_than_comparable<times> > >
{
+ typedef process_real_cpu_clock::rep rep;
times()
: real(0)
, user(0)
@@ -96,20 +97,37 @@
system*=rhs.system;
return *this;
}
+ times operator*=(rep const& rhs) {
+ real*=rhs;
+ user*=rhs;
+ system*=rhs;
+ return *this;
+ }
times operator/=(times const& rhs) {
real/=rhs.real;
user/=rhs.user;
system/=rhs.system;
return *this;
}
+ times operator/=(rep const& rhs) {
+ real/=rhs;
+ user/=rhs;
+ system/=rhs;
+ return *this;
+ }
bool operator<(times const & rhs) const {
if (real < rhs.real) return true;
if (real > rhs.real) return false;
if (user < rhs.user) return true;
if (user > rhs.user) return false;
- if (user < rhs.user) return true;
+ if (system < rhs.system) return true;
else return false;
}
+
+ template <typename OSTREAM>
+ void print(OSTREAM& os) {
+ os << "{"<< real <<","<< user <<","<< system << "}";
+ };
};
typedef boost::chrono::duration<times, nano> duration;
@@ -121,6 +139,12 @@
static time_point now( system::error_code & ec = system::throws );
};
+ template <typename OSTREAM>
+ OSTREAM& operator<<(OSTREAM& os, process_cpu_clock::times const& rhs) {
+ rhs.print(os);
+ return os;
+ }
+
template <>
struct duration_values<process_cpu_clock::times>
{
Modified: sandbox/chrono/boost/chrono/stopclock.hpp
==============================================================================
--- sandbox/chrono/boost/chrono/stopclock.hpp (original)
+++ sandbox/chrono/boost/chrono/stopclock.hpp 2010-08-15 17:43:53 EDT (Sun, 15 Aug 2010)
@@ -176,7 +176,7 @@
typedef stopclock< boost::chrono::process_real_cpu_clock > process_real_cpu_stopclock;
typedef stopclock< boost::chrono::process_user_cpu_clock > process_user_cpu_stopclock;
typedef stopclock< boost::chrono::process_system_cpu_clock > process_system_cpu_stopclock;
- //typedef stopclock< boost::chrono::process_cpu_clock > process_cpu_stopclock;
+ typedef stopclock< boost::chrono::process_cpu_clock > process_cpu_stopclock;
template <class Clock=process_cpu_clock, class Formatter=typename wstopwatch_reporter_default_formatter<stopwatch<Clock> >::type>
class wstopclock;
@@ -250,7 +250,7 @@
typedef wstopclock< boost::chrono::process_real_cpu_clock > process_real_cpu_wstopclock;
typedef wstopclock< boost::chrono::process_user_cpu_clock > process_user_cpu_wstopclock;
typedef wstopclock< boost::chrono::process_system_cpu_clock > process_system_cpu_wstopclock;
- //typedef wstopclock< boost::chrono::process_cpu_clock > process_cpu_wstopclock;
+ typedef wstopclock< boost::chrono::process_cpu_clock > process_cpu_wstopclock;
} // namespace chrono
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk