File tree 1 file changed +63
-0
lines changed 1 file changed +63
-0
lines changed Original file line number Diff line number Diff line change
1
+
2
+ #include < chrono>
3
+ #include < iostream>
4
+
5
+
6
+ auto start = std::chrono::steady_clock::now();
7
+
8
+ void writeElapsedTime ()
9
+ {
10
+ auto now = std::chrono::steady_clock::now ();
11
+ std::chrono::duration<double > diff = now - start;
12
+ std::cerr << diff.count () << " sec, elapsed: " ;
13
+ }
14
+
15
+
16
+ struct MessageSeverty {
17
+ void writeMessage () const
18
+ {
19
+ std::cerr << " unexpected" << ' \n ' ;
20
+ }
21
+ };
22
+
23
+
24
+ struct MessageInformation
25
+ {
26
+ void writeMessage () const {
27
+ std::cerr << " information" << ' \n ' ;
28
+ }
29
+ };
30
+
31
+ struct MessageWarning {
32
+ void writeMessage () const {
33
+ std::cerr << " warning" << ' \n ' ;
34
+ }
35
+ };
36
+
37
+
38
+ struct MessageFatal :MessageSeverty{};
39
+
40
+ template <typename T>
41
+ void writeMessage (T& messServer)
42
+ {
43
+ writeElapsedTime ();
44
+ messServer.writeMessage ();
45
+ }
46
+
47
+ int main ()
48
+ {
49
+ std::cout << ' \n ' ;
50
+
51
+ MessageInformation messInfo;
52
+ writeMessage (messInfo);
53
+
54
+ MessageWarning messWarn;
55
+ writeMessage (messWarn);
56
+
57
+ MessageFatal messFatal;
58
+ writeMessage (messFatal);
59
+
60
+ std::cout << ' \n ' ;
61
+
62
+ return 0 ;
63
+ }
You can’t perform that action at this time.
0 commit comments