Fix lsb error for ticks with huge max_progress values.

When the max_progress value is >1.67772e+07, the progress_ which is
float, is not chanegd when tick() is called as +1 is outside of the
precission for a float value. The bar stays at value of 1.67772e+07
and 67%.
In this fix I introduced tics_ varialbe of size_t which is increased
with every tick. And the progress_ is calcualted as a ratio of
tick_/max_progress.
The breaking and required change is the change of set_progress(float)
to set_progress(size_t), so it modifies directly the tics_ value.
This commit is contained in:
Rafał Lalik
2025-04-30 23:57:01 +02:00
parent ac6c93ea2b
commit fbdac646ee
2 changed files with 14 additions and 14 deletions

View File

@@ -17,7 +17,7 @@ int main() {
auto progress = 0.0f;
while (true) {
bar.set_progress(progress);
progress += 0.25f;
progress += 1;
if (bar.is_completed())
break;
std::this_thread::sleep_for(std::chrono::milliseconds(50));