Fix the build for older macOS.
[dcpomatic.git] / src / lib / timer.cc
index e4e7bdfdc391a412f4ef0d4c25f5c1ada4e7404c..caef89e0e98e5c413539c0851216acde96f6f797 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2019 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2021 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
 
 */
 
+
 /** @file src/timer.cc
  *  @brief Some timing classes for debugging and profiling.
  */
 
+
+#include "compose.hpp"
 #include "timer.h"
 #include "util.h"
-#include "compose.hpp"
-#include <iostream>
 #include <sys/time.h>
+#include <iostream>
 
 #include "i18n.h"
 
-using namespace std;
+
+using std::cout;
+using std::list;
+using std::max;
+using std::pair;
+using std::string;
 using boost::optional;
 
+
 /** @param n Name to use when giving output */
 PeriodTimer::PeriodTimer (string n)
        : _name (n)
@@ -40,6 +48,7 @@ PeriodTimer::PeriodTimer (string n)
        gettimeofday (&_start, 0);
 }
 
+
 /** Destroy PeriodTimer and output the time elapsed since its construction */
 PeriodTimer::~PeriodTimer ()
 {
@@ -48,9 +57,7 @@ PeriodTimer::~PeriodTimer ()
        cout << N_("T: ") << _name << N_(": ") << (seconds (stop) - seconds (_start)) << N_("\n");
 }
 
-/** @param n Name to use when giving output.
- *  @param s Initial state.
- */
+
 StateTimer::StateTimer (string n, string s)
        : _name (n)
 {
@@ -60,19 +67,21 @@ StateTimer::StateTimer (string n, string s)
        _state = s;
 }
 
+
 StateTimer::StateTimer (string n)
        : _name (n)
 {
 
 }
 
+
 void
 StateTimer::set (string s)
 {
        set_internal (s);
 }
 
-/** @param s New state that the caller is in */
+
 void
 StateTimer::set_internal (optional<string> s)
 {
@@ -92,16 +101,13 @@ StateTimer::set_internal (optional<string> s)
        _state = s;
 }
 
+
 void
 StateTimer::unset ()
 {
        set_internal (optional<string>());
 }
 
-bool compare (pair<double, string> a, pair<double, string> b)
-{
-       return a.first > b.first;
-}
 
 /** Destroy StateTimer and generate a summary of the state timings on cout */
 StateTimer::~StateTimer ()
@@ -113,24 +119,27 @@ StateTimer::~StateTimer ()
        unset ();
 
        int longest = 0;
-       for (map<string, Counts>::iterator i = _counts.begin(); i != _counts.end(); ++i) {
-               longest = max (longest, int(i->first.length()));
+       for (auto const& i: _counts) {
+               longest = max (longest, int(i.first.length()));
        }
 
-       list<pair<double, string> > sorted;
+       list<pair<double, string>> sorted;
 
-       for (map<string, Counts>::iterator i = _counts.begin(); i != _counts.end(); ++i) {
-               string name = i->first + string(longest + 1 - i->first.size(), ' ');
+       for (auto const& i: _counts) {
+               string name = i.first + string(longest + 1 - i.first.size(), ' ');
                char buffer[64];
-               snprintf (buffer, 64, "%.4f", i->second.total_time);
+               snprintf (buffer, 64, "%.4f", i.second.total_time);
                string total_time (buffer);
-               sorted.push_back (make_pair(i->second.total_time, String::compose("\t%1%2 %3 %4", name, total_time, i->second.number, (i->second.total_time / i->second.number))));
+               sorted.push_back (make_pair(i.second.total_time, String::compose("\t%1%2 %3 %4", name, total_time, i.second.number, (i.second.total_time / i.second.number))));
        }
 
-       sorted.sort (compare);
+       sorted.sort ([](pair<double, string> const& a, pair<double, string> const& b) {
+               return a.first > b.first;
+       });
+
 
        cout << _name << N_(":\n");
-       for (list<pair<double, string> >::iterator i = sorted.begin(); i != sorted.end(); ++i) {
-               cout << N_("\t") << i->second << "\n";
+       for (auto const& i: sorted) {
+               cout << N_("\t") << i.second << "\n";
        }
 }