/**
* @file stream_util.h
* C++ stream utility
*
* @remark Copyright 2003 OProfile authors
* @remark Read the file COPYING
*
* @author Philippe Elie
* @author John Levon
*/
#ifndef STREAM_UTIL_H
#define STREAM_UTIL_H
#include <iostream>
/// class which save a stream state and restore it at dtor time
class io_state {
public:
/**
* save the stream flags, precision and fill char.
*
* width is restored at end of expression, there is no need to save it.
* tie and locale are not saved currently
*
* error state shouldn't be saved.
*/
io_state(std::ios & stream);
/// restore the stream state
~io_state();
private:
std::ios & stream;
std::ios::fmtflags format;
std::streamsize precision;
char fill;
};
#endif /* !STREAM_UTIL_H */