Use Structured Bindings
This makes use of C++17's structured bindings to simplify some code like
auto mydata = std::make_tuple(XYZVector{0,0,0}, double(12.55), bool(true));
auto position = std::get<0>(mydata);
double time = std::get<1>(mydata);
bool cond = std::get<2>(mydata);
auto mypair = std::make_pair(12.5, 13.5);
to
auto [position, time, cond] = std::make_tuple(XYZVector{0,0,0}, double(12.55), bool(true));
auto [first, second] = std::make_pair(12.5, 13.5);
Especially the std::pair
version is very useful in writing nicer loops.