Time calculations with floats, in general, are not precise. With that said, when using an equality operator, even with the right hand side being constexpr, it is *not safe* to assume `timeRemaining` will be exactly `-1.0f` when you expect it to be. I'd suggest factoring in `std::numeric_limits<float>::epsilon()` at least (and perhaps turning it into a helper function that others can use).