File size: 773 Bytes
10f2621
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef H_TIMER_STRUCT_H
#define H_TIMER_STRUCT_H

#include <chrono>

class Timer
{
private:
    std::chrono::time_point<std::chrono::steady_clock> start_time_;
    std::chrono::time_point<std::chrono::steady_clock> end_time_;
    std::chrono::duration<double, std::milli> elapsed_time_ = std::chrono::steady_clock::duration::zero();

public:
    void start() {
        start_time_ = std::chrono::steady_clock::now();
    }
    
    void stop() {
        end_time_ = std::chrono::steady_clock::now();
        elapsed_time_ += std::chrono::duration<double, std::milli>(end_time_ - start_time_);
    }

    double elapsed_time() const {
        return std::chrono::duration<double>(elapsed_time_).count();
    }
    
    Timer() = default;
    ~Timer() = default;
};

#endif