Annotation of researchv10no/cmd/cfront/libC/ooiostream/iomanip.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.