|
|
1.1 root 1: /***
2: *iostream.h - definitions/declarations for iostream classes
3: *
1.1.1.2 ! root 4: * Copyright (c) 1990-1993, Microsoft Corporation. All rights reserved.
1.1 root 5: *
6: *Purpose:
7: * This file defines the classes, values, macros, and functions
8: * used by the iostream classes.
9: * [AT&T C++]
10: *
11: ****/
12:
13: #ifndef _INC_IOSTREAM
14: #define _INC_IOSTREAM
15:
16: typedef long streamoff, streampos;
17:
18: #include <ios.h> // Define ios.
19:
20: #include <streamb.h> // Define streambuf.
21:
22: #include <istream.h> // Define istream.
23:
24: #include <ostream.h> // Define ostream.
25:
1.1.1.2 ! root 26: // C4505: "unreferenced local function has been removed"
! 27: #pragma warning(disable:4505) // disable C4505 warning
! 28: // #pragma warning(default:4505) // use this to reenable, if desired
! 29:
! 30: // C4103 : "used #pragma pack to change alignment"
! 31: #pragma warning(disable:4103) // disable C4103 warning
! 32: // #pragma warning(default:4103) // use this to reenable, if desired
! 33:
1.1 root 34: // Force word packing to avoid possible -Zp override
35: #pragma pack(4)
36:
37: class iostream : public istream, public ostream {
38: public:
39: iostream(streambuf*);
40: virtual ~iostream();
41: protected:
42: // consider: make private??
43: iostream();
44: iostream(const iostream&);
45: inline iostream& operator=(streambuf*);
46: inline iostream& operator=(iostream&);
47: private:
48: iostream(ios&);
49: iostream(istream&);
50: iostream(ostream&);
51: };
52:
53: inline iostream& iostream::operator=(streambuf* _sb) { istream::operator=(_sb); ostream::operator=(_sb); return *this; }
54:
55: inline iostream& iostream::operator=(iostream& _strm) { return operator=(_strm.rdbuf()); }
56:
57: class Iostream_init {
58: public:
59: Iostream_init();
60: Iostream_init(ios &, int =0); // treat as private
61: ~Iostream_init();
62: };
63:
64: // used internally
65: // static Iostream_init __iostreaminit; // initializes cin/cout/cerr/clog
66:
67: // Restore default packing
68: #pragma pack()
69:
70: #endif /* !_INC_IOSTREAM */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.