From 35de0467ca9ff44d24f3387df065313c6efc7545 Mon Sep 17 00:00:00 2001 From: Mark Meserve Date: Wed, 26 Sep 2018 16:24:35 -0500 Subject: uhd: reconcile time_spec operators with boost concepts - Removes operator+ which was ambiguously defined in some cases - Adds additive concept for time_spec_t and double operators - Remove unnecessary ctime header --- host/include/uhd/types/time_spec.hpp | 9 +++++---- host/lib/types/time_spec.cpp | 23 +++++++++-------------- 2 files changed, 14 insertions(+), 18 deletions(-) (limited to 'host') diff --git a/host/include/uhd/types/time_spec.hpp b/host/include/uhd/types/time_spec.hpp index 54fd9d379..8c0a2568d 100644 --- a/host/include/uhd/types/time_spec.hpp +++ b/host/include/uhd/types/time_spec.hpp @@ -10,7 +10,6 @@ #include #include -#include namespace uhd{ @@ -26,7 +25,10 @@ namespace uhd{ * This gives the fractional seconds enough precision to unambiguously * specify a clock-tick/sample-count up to rates of several petahertz. */ - class UHD_API time_spec_t : boost::additive, boost::totally_ordered{ + class UHD_API time_spec_t : + boost::additive, + boost::additive, + boost::totally_ordered{ public: /*! @@ -98,10 +100,9 @@ namespace uhd{ //! Implement addable interface time_spec_t &operator+=(const time_spec_t &); time_spec_t &operator+=(double &); - time_spec_t operator+(double &); - time_spec_t operator+(const time_spec_t &); //! Implement subtractable interface time_spec_t &operator-=(const time_spec_t &); + time_spec_t &operator-=(double &); //private time storage details private: diff --git a/host/lib/types/time_spec.cpp b/host/lib/types/time_spec.cpp index 403c3336c..c07ab8525 100644 --- a/host/lib/types/time_spec.cpp +++ b/host/lib/types/time_spec.cpp @@ -91,20 +91,6 @@ time_spec_t &time_spec_t::operator+=(double &rhs){ return *this; } -time_spec_t time_spec_t::operator+(double &rhs){ - double full_secs = std::trunc(rhs); - time_spec_t toRet(this->get_full_secs() + full_secs, - this->get_frac_secs() + rhs - full_secs); - return toRet; -} - -time_spec_t time_spec_t::operator+(const time_spec_t &rhs){ - time_spec_t toRet( - this->get_full_secs() + rhs.get_full_secs(), - this->get_frac_secs() + rhs.get_frac_secs()); - return toRet; -} - time_spec_t &time_spec_t::operator-=(const time_spec_t &rhs){ time_spec_init( this->get_full_secs() - rhs.get_full_secs(), @@ -113,6 +99,15 @@ time_spec_t &time_spec_t::operator-=(const time_spec_t &rhs){ return *this; } +time_spec_t &time_spec_t::operator-=(double &rhs) { + double full_secs = std::trunc(rhs); + time_spec_init( + this->get_full_secs() - full_secs, + this->get_frac_secs() - (rhs - full_secs) + ); + return *this; +} + bool uhd::operator==(const time_spec_t &lhs, const time_spec_t &rhs){ return lhs.get_full_secs() == rhs.get_full_secs() and -- cgit v1.2.3