Why compiler warns about implicit conversion in setprecision?

Viewed 1711

When I compile the following code, compiler gives me the warning:

"Implicit conversion loses integer precision: 'std::streamsize' (aka 'long') to 'int'". 

I'm a little bit confused about this warning since I just try to save the current value of the precision to set it back to the original value later.

#include <iomanip>
#include <iostream>

int main() {
  std::streamsize prec = std::cout.precision();
  std::cout << std::setprecision(prec);
}

What is the right way to save the precision value and set it back later in this case?

1 Answers
Related