9
« on: March 14, 2023, 12:47:23 am »
A clock will tell you the time. This is what the clock on your computer, your wrist, or the wall tells you. It's also how the C++ standard uses the world "clock". A clock will give you a point in time.
sf::Clock does not behave that way. It only measures the elapsed time between two points in time. This is how it's implemented. It creates a time point upon construction then takes the difference between a new time point and the original time point to create a duration which is returned to the caller. Its interface exposes no concept of a point in time. It only understands durations. For that reason it ought to be renamed to sf::StopWatch in SFML 3. With that new name, it becomes much more natural to model the behavior of a stop watch, meaning adding the ability to stop and resume the timer at will.
We might even go so far as to rename sf::Time as sf::Duration since sf::Duration is homomorphic with a std::chrono::duration.