|
|
1.1 root 1: /*ident "@(#)ctrans:incl/iomanip.h 1.1.1.2" */
2: /**************************************************************************
3: Copyright (c) 1984 AT&T
4: All Rights Reserved
5:
6: THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T
7:
8: The copyright notice above does not evidence any
9: actual or intended publication of such source code.
10:
11: *****************************************************************************/
12:
13: #ifndef IOMANIPH
14: #define IOMANIPH
15:
16: #include <generic.h>
17:
18: #define SMANIP(T)name2(smanip_,T)
19: #define SAPP(T)name2(sapply_,T)
20: #define IMANIP(T)name2(imanip_,T)
21: #define OMANIP(T)name2(omanip_,T)
22: #define IOMANIP(T)name2(iomanip_,T)
23: #define IAPP(T)name2(iapply_,T)
24: #define OAPP(T)name2(oapply_,T)
25: #define IOAPP(T)name2(ioapply_,T)
26:
27: #define IOMANIPdeclare(T) \
28: class SMANIP(T) { \
29: ios& (*fct)(ios&,T) ; \
30: T arg ; \
31: public: \
32: SMANIP(T)(ios& (*f)(ios&, T), T a) : \
33: fct(f), arg(a) { } \
34: friend istream& operator>>(istream& i, SMANIP(T)& m) { \
35: ios* s = &i ; \
36: (*m.fct)(*s,m.arg) ; return i ; } \
37: friend ostream& operator<<(ostream& o, SMANIP(T)& m) { \
38: ios* s = &o ; \
39: (*m.fct)(*s,m.arg) ; return o ; } \
40: } ; \
41: class SAPP(T) { \
42: ios& (*fct)(ios&, T) ; \
43: public: \
44: SAPP(T)(ios& (*f)(ios&,T)) : fct(f) { } \
45: SMANIP(T) operator()(T a) { \
46: return SMANIP(T)(fct,a) ; } \
47: } ; \
48: class IMANIP(T) { \
49: istream& (*fct)(istream&,T) ; \
50: T arg ; \
51: public: \
52: IMANIP(T)(istream& (*f)(istream&, T), T a ) : \
53: fct(f), arg(a) { } \
54: friend istream& operator>>(istream& s, IMANIP(T)& m) { \
55: return(*m.fct)(s,m.arg) ; \
56: } \
57: } ; \
58: class IAPP(T) { \
59: istream& (*fct)(istream&, T) ; \
60: public: \
61: IAPP(T)(istream& (*f)(istream&,T)) : fct(f) { } \
62: IMANIP(T) operator()(T a) { \
63: return IMANIP(T)(fct,a) ; } \
64: } ; \
65: class OMANIP(T) { \
66: ostream& (*fct)(ostream&,T) ; \
67: T arg ; \
68: public: \
69: OMANIP(T)(ostream& (*f)(ostream&, T), T a ) : \
70: fct(f), arg(a) { } \
71: friend ostream& operator<<(ostream& s, OMANIP(T)& m) { \
72: return(*m.fct)(s,m.arg) ; \
73: } \
74: } ; \
75: class OAPP(T) { \
76: ostream& (*fct)(ostream&, T) ; \
77: public: \
78: OAPP(T)(ostream& (*f)(ostream&,T)) : fct(f) { } \
79: OMANIP(T) operator()(T a) { \
80: return OMANIP(T)(fct,a) ; } \
81: } ; \
82: class IOMANIP(T) { \
83: iostream& (*fct)(iostream&,T) ; \
84: T arg ; \
85: public: \
86: IOMANIP(T)(iostream& (*f)(iostream&, T), T a ) : \
87: fct(f), arg(a) { } \
88: friend istream& operator>>(iostream& s, IOMANIP(T)& m) { \
89: return(*m.fct)(s,m.arg) ; \
90: } \
91: friend ostream& operator<<(iostream& s, IOMANIP(T)& m) { \
92: return(*m.fct)(s,m.arg) ; \
93: } \
94: } ; \
95: class IOAPP(T) { \
96: iostream& (*fct)(iostream&, T) ; \
97: public: \
98: IOAPP(T)(iostream& (*f)(iostream&,T)) : fct(f) { } \
99: IOMANIP(T) operator()(T a) { \
100: return IOMANIP(T)(fct,a) ; } \
101: } ; \
102:
103:
104:
105: IOMANIPdeclare(int) ;
106: IOMANIPdeclare(long) ;
107:
108: SMANIP(int) setbase(int b) ; /* 10, 8, 16 or 0 */
109: SMANIP(long) resetiosflags(long b) ;
110: SMANIP(long) setiosflags(long b) ;
111: SMANIP(int) setfill(int f);
112: SMANIP(int) setprecision(int p);
113: SMANIP(int) setw(int w) ;
114:
115: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.