It's not just time zones and leap seconds. SI seconds on Earth are slower because of relativity, so there are time standards for space stuff (TCB, TGC) that use faster SI seconds than UTC/Unix time. T2 - T1 = [God doesn't know and the Devil isn't telling.]
C++ user with operator overloading: "T2 minus T1."
Let someone else implement the class. There's probably a library for it.
Is there a straightforward way to know which overloading will be used or is it just a roulette every time you add a sketchy new library to your build?
That's fine if T1 and T2 include a datetime with the exact local timezone. A simple timestamp or timestamp + utc offset won't work.