As I prepare for the rewrite (however partial), it’s important to get ChronoWatch v1.0 into a readable state. This means:
- Adding comments
- Removing lambdas
“What’s a lambda?” you may ask. My answer – and this is why I’m removing lambdas – is “ask someone else”. I initially used them for writing in-place comparison functions. But that’s, to put it lightly, messy. Especially since the lambda I’m most interested in doesn’t actually change in terms of functionality. But because it’s used in-place, it has to be written twice. Here’s ChronoWatch’s sorting with lambdas:
Notice that the left.second > right.second
line doesn’t change between the two std::sort
calls.
The solution is to write lambda as an actual function, template it, and now remove the lambdas:
Disclaimer: There are times and places for lambdas – if there weren’t, they never would’ve been passed into the standard. However, in my case they make the code messier, and I don’t have a complete understanding of them anyway.
Time spent: 5.5 hours. (Other efficiency tweaks were made.)
~Nolan T Yoo