1//===----------------------------------------------------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// <iosfwd>
11
12#include <iosfwd>
13#include <cwchar>  // for mbstate_t
14
15int main()
16{
17    {
18    std::char_traits<char>*               t1 = 0;
19    std::char_traits<wchar_t>*            t2 = 0;
20    std::char_traits<unsigned short>*     t3 = 0;
21    }
22    {
23    std::basic_ios<char>*                 t1 = 0;
24    std::basic_ios<wchar_t>*              t2 = 0;
25    std::basic_ios<unsigned short>*       t3 = 0;
26    }
27    {
28    std::basic_streambuf<char>*           t1 = 0;
29    std::basic_streambuf<wchar_t>*        t2 = 0;
30    std::basic_streambuf<unsigned short>* t3 = 0;
31    }
32    {
33    std::basic_istream<char>*             t1 = 0;
34    std::basic_istream<wchar_t>*          t2 = 0;
35    std::basic_istream<unsigned short>*   t3 = 0;
36    }
37    {
38    std::basic_ostream<char>*             t1 = 0;
39    std::basic_ostream<wchar_t>*          t2 = 0;
40    std::basic_ostream<unsigned short>*   t3 = 0;
41    }
42    {
43    std::basic_iostream<char>*             t1 = 0;
44    std::basic_iostream<wchar_t>*          t2 = 0;
45    std::basic_iostream<unsigned short>*   t3 = 0;
46    }
47    {
48    std::basic_stringbuf<char>*             t1 = 0;
49    std::basic_stringbuf<wchar_t>*          t2 = 0;
50    std::basic_stringbuf<unsigned short>*   t3 = 0;
51    }
52    {
53    std::basic_istringstream<char>*             t1 = 0;
54    std::basic_istringstream<wchar_t>*          t2 = 0;
55    std::basic_istringstream<unsigned short>*   t3 = 0;
56    }
57    {
58    std::basic_ostringstream<char>*             t1 = 0;
59    std::basic_ostringstream<wchar_t>*          t2 = 0;
60    std::basic_ostringstream<unsigned short>*   t3 = 0;
61    }
62    {
63    std::basic_stringstream<char>*             t1 = 0;
64    std::basic_stringstream<wchar_t>*          t2 = 0;
65    std::basic_stringstream<unsigned short>*   t3 = 0;
66    }
67    {
68    std::basic_filebuf<char>*             t1 = 0;
69    std::basic_filebuf<wchar_t>*          t2 = 0;
70    std::basic_filebuf<unsigned short>*   t3 = 0;
71    }
72    {
73    std::basic_ifstream<char>*             t1 = 0;
74    std::basic_ifstream<wchar_t>*          t2 = 0;
75    std::basic_ifstream<unsigned short>*   t3 = 0;
76    }
77    {
78    std::basic_ofstream<char>*             t1 = 0;
79    std::basic_ofstream<wchar_t>*          t2 = 0;
80    std::basic_ofstream<unsigned short>*   t3 = 0;
81    }
82    {
83    std::basic_fstream<char>*             t1 = 0;
84    std::basic_fstream<wchar_t>*          t2 = 0;
85    std::basic_fstream<unsigned short>*   t3 = 0;
86    }
87    {
88    std::istreambuf_iterator<char>*             t1 = 0;
89    std::istreambuf_iterator<wchar_t>*          t2 = 0;
90    std::istreambuf_iterator<unsigned short>*   t3 = 0;
91    }
92    {
93    std::ostreambuf_iterator<char>*             t1 = 0;
94    std::ostreambuf_iterator<wchar_t>*          t2 = 0;
95    std::ostreambuf_iterator<unsigned short>*   t3 = 0;
96    }
97    {
98    std::ios*           t1 = 0;
99    std::wios*          t2 = 0;
100    }
101    {
102    std::streambuf*        t1 = 0;
103    std::istream*          t2 = 0;
104    std::ostream*          t3 = 0;
105    std::iostream*         t4 = 0;
106    }
107    {
108    std::stringbuf*            t1 = 0;
109    std::istringstream*        t2 = 0;
110    std::ostringstream*        t3 = 0;
111    std::stringstream*         t4 = 0;
112    }
113    {
114    std::filebuf*         t1 = 0;
115    std::ifstream*        t2 = 0;
116    std::ofstream*        t3 = 0;
117    std::fstream*         t4 = 0;
118    }
119    {
120    std::wstreambuf*        t1 = 0;
121    std::wistream*          t2 = 0;
122    std::wostream*          t3 = 0;
123    std::wiostream*         t4 = 0;
124    }
125    {
126    std::wstringbuf*            t1 = 0;
127    std::wistringstream*        t2 = 0;
128    std::wostringstream*        t3 = 0;
129    std::wstringstream*         t4 = 0;
130    }
131    {
132    std::wfilebuf*         t1 = 0;
133    std::wifstream*        t2 = 0;
134    std::wofstream*        t3 = 0;
135    std::wfstream*         t4 = 0;
136    }
137    {
138    std::fpos<std::mbstate_t>*   t1 = 0;
139    std::streampos*              t2 = 0;
140    std::wstreampos*             t3 = 0;
141    }
142}
143