GitHub Actions: Try MSVC builds with /std:c++17 and 20
[ACE_TAO.git] / ACE / ace / iosfwd.h
blobfb38cf08319374f25f5e10747dfd411d52f08adb
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file iosfwd.h
7 * @author Irfan Pyarali
9 * This file contains the portability ugliness for the Standard C++
10 * Library. As implementations of the "standard" emerge, this file
11 * will need to be updated.
13 * This files deals with forward declaration for the stream
14 * classes. Remember that since the new Standard C++ Library code
15 * for streams uses templates, simple forward declaration will not
16 * work.
18 //=============================================================================
21 #ifndef ACE_IOSFWD_H
22 #define ACE_IOSFWD_H
24 #include /**/ "ace/pre.h"
26 #include /**/ "ace/config-all.h"
28 #if !defined (ACE_LACKS_PRAGMA_ONCE)
29 # pragma once
30 #endif /* ACE_LACKS_PRAGMA_ONCE */
32 #if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
34 #if defined (__APPLE_CC__)
35 // Should this really be here? dhinton
36 // FUZZ: disable check_for_streams_include
37 # include "ace/streams.h"
38 #endif
40 #if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && \
41 (ACE_HAS_STANDARD_CPP_LIBRARY != 0)
43 # if !defined (ACE_USES_OLD_IOSTREAMS)
44 # include /**/ <iosfwd>
45 #define ACE_HAS_CPP98_IOSTREAMS 1
46 # else
47 // @note If these forward declarations don't work (e.g. aren't
48 // portable), we may have to include "ace/streams.h" as a last
49 // resort. Doing so would defeat the purpose of this header,
50 // unfortunately.
51 class ios;
52 class streambuf;
53 class istream;
54 class ostream;
55 class iostream;
56 class filebuf;
57 class ifstream;
58 class ofstream;
59 class fstream;
60 # endif /* ! ACE_USES_OLD_IOSTREAMS */
62 # if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB) && \
63 (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB != 0)
65 # if !defined (ACE_USES_OLD_IOSTREAMS)
66 // Make these available in the global name space
67 using std::ios;
68 using std::streambuf;
69 using std::istream;
70 using std::ostream;
71 using std::iostream;
72 using std::filebuf;
73 using std::ifstream;
74 using std::ofstream;
75 using std::fstream;
76 # endif /* ! ACE_USES_OLD_IOSTREAMS */
78 # endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */
80 #else /* ! ACE_HAS_STANDARD_CPP_LIBRARY */
82 class ios;
83 class streambuf;
84 class istream;
85 class ostream;
86 class iostream;
87 class filebuf;
88 class ifstream;
89 class ofstream;
90 class fstream;
92 # endif /* ! ACE_HAS_STANDARD_CPP_LIBRARY */
94 #include /**/ "ace/post.h"
96 #endif /* ACE_LACKS_IOSTREAM_TOTALLY */
98 #endif /* ACE_IOSFWD_H */