stream_util.h revision 8cfa702f803c5ef6a2b062a489a1b2cf66b45b5e
1/**
2 * @file stream_util.h
3 * C++ stream utility
4 *
5 * @remark Copyright 2003 OProfile authors
6 * @remark Read the file COPYING
7 *
8 * @author Philippe Elie
9 * @author John Levon
10 */
11
12#ifndef STREAM_UTIL_H
13#define STREAM_UTIL_H
14
15#include <iostream>
16
17/// class which save a stream state and restore it at dtor time
18class io_state {
19public:
20	/**
21	 * save the stream flags, precision and fill char.
22	 *
23	 * width is restored at end of expression, there is no need to save it.
24	 * tie and locale are not saved currently
25	 *
26	 * error state shouldn't be saved.
27	 */
28	io_state(std::ios & stream);
29	/// restore the stream state
30	~io_state();
31private:
32	std::ios & stream;
33
34	std::ios::fmtflags format;
35	std::streamsize precision;
36	char fill;
37};
38
39#endif /* !STREAM_UTIL_H */
40