xref: /llvm-project/libcxx/test/std/input.output/iostream.forward/iosfwd.pass.cpp (revision 08a0faf4cd32bce6c51027ea9b5ec351747995b4)
15a83710eSEric Fiselier //===----------------------------------------------------------------------===//
25a83710eSEric Fiselier //
357b08b09SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
457b08b09SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
557b08b09SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
65a83710eSEric Fiselier //
75a83710eSEric Fiselier //===----------------------------------------------------------------------===//
85a83710eSEric Fiselier 
95a83710eSEric Fiselier // <iosfwd>
105a83710eSEric Fiselier 
115a83710eSEric Fiselier #include <iosfwd>
125a83710eSEric Fiselier 
137fc6a556SMarshall Clow #include "test_macros.h"
147fc6a556SMarshall Clow 
15*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
16*f4c1258dSLouis Dionne #   include <cwchar>
17*f4c1258dSLouis Dionne #endif
18*f4c1258dSLouis Dionne 
test()194dc0ed83SStephan T. Lavavej template <class Ptr> void test()
204dc0ed83SStephan T. Lavavej {
214dc0ed83SStephan T. Lavavej     Ptr p = 0;
224dc0ed83SStephan T. Lavavej     ((void)p); // Prevent unused warning
234dc0ed83SStephan T. Lavavej }
244dc0ed83SStephan T. Lavavej 
main(int,char **)252df59c50SJF Bastien int main(int, char**)
265a83710eSEric Fiselier {
274dc0ed83SStephan T. Lavavej     test<std::char_traits<char>*          >();
28*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
294dc0ed83SStephan T. Lavavej     test<std::char_traits<wchar_t>*       >();
30*f4c1258dSLouis Dionne #endif
314dc0ed83SStephan T. Lavavej 
324dc0ed83SStephan T. Lavavej     test<std::basic_ios<char>*          >();
33*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
344dc0ed83SStephan T. Lavavej     test<std::basic_ios<wchar_t>*       >();
35*f4c1258dSLouis Dionne #endif
364dc0ed83SStephan T. Lavavej     test<std::basic_ios<unsigned short>*>();
374dc0ed83SStephan T. Lavavej 
384dc0ed83SStephan T. Lavavej     test<std::basic_streambuf<char>*          >();
39*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
404dc0ed83SStephan T. Lavavej     test<std::basic_streambuf<wchar_t>*       >();
41*f4c1258dSLouis Dionne #endif
424dc0ed83SStephan T. Lavavej     test<std::basic_streambuf<unsigned short>*>();
434dc0ed83SStephan T. Lavavej 
444dc0ed83SStephan T. Lavavej     test<std::basic_istream<char>*          >();
45*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
464dc0ed83SStephan T. Lavavej     test<std::basic_istream<wchar_t>*       >();
47*f4c1258dSLouis Dionne #endif
484dc0ed83SStephan T. Lavavej     test<std::basic_istream<unsigned short>*>();
494dc0ed83SStephan T. Lavavej 
504dc0ed83SStephan T. Lavavej     test<std::basic_ostream<char>*          >();
51*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
524dc0ed83SStephan T. Lavavej     test<std::basic_ostream<wchar_t>*       >();
53*f4c1258dSLouis Dionne #endif
544dc0ed83SStephan T. Lavavej     test<std::basic_ostream<unsigned short>*>();
554dc0ed83SStephan T. Lavavej 
564dc0ed83SStephan T. Lavavej     test<std::basic_iostream<char>*          >();
57*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
584dc0ed83SStephan T. Lavavej     test<std::basic_iostream<wchar_t>*       >();
59*f4c1258dSLouis Dionne #endif
604dc0ed83SStephan T. Lavavej     test<std::basic_iostream<unsigned short>*>();
614dc0ed83SStephan T. Lavavej 
624dc0ed83SStephan T. Lavavej     test<std::basic_stringbuf<char>*          >();
63*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
644dc0ed83SStephan T. Lavavej     test<std::basic_stringbuf<wchar_t>*       >();
65*f4c1258dSLouis Dionne #endif
664dc0ed83SStephan T. Lavavej     test<std::basic_stringbuf<unsigned short>*>();
674dc0ed83SStephan T. Lavavej 
684dc0ed83SStephan T. Lavavej     test<std::basic_istringstream<char>*          >();
69*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
704dc0ed83SStephan T. Lavavej     test<std::basic_istringstream<wchar_t>*       >();
71*f4c1258dSLouis Dionne #endif
724dc0ed83SStephan T. Lavavej     test<std::basic_istringstream<unsigned short>*>();
734dc0ed83SStephan T. Lavavej 
744dc0ed83SStephan T. Lavavej     test<std::basic_ostringstream<char>*          >();
75*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
764dc0ed83SStephan T. Lavavej     test<std::basic_ostringstream<wchar_t>*       >();
77*f4c1258dSLouis Dionne #endif
784dc0ed83SStephan T. Lavavej     test<std::basic_ostringstream<unsigned short>*>();
794dc0ed83SStephan T. Lavavej 
804dc0ed83SStephan T. Lavavej     test<std::basic_stringstream<char>*          >();
81*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
824dc0ed83SStephan T. Lavavej     test<std::basic_stringstream<wchar_t>*       >();
83*f4c1258dSLouis Dionne #endif
844dc0ed83SStephan T. Lavavej     test<std::basic_stringstream<unsigned short>*>();
854dc0ed83SStephan T. Lavavej 
864dc0ed83SStephan T. Lavavej     test<std::basic_filebuf<char>*          >();
87*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
884dc0ed83SStephan T. Lavavej     test<std::basic_filebuf<wchar_t>*       >();
89*f4c1258dSLouis Dionne #endif
904dc0ed83SStephan T. Lavavej     test<std::basic_filebuf<unsigned short>*>();
914dc0ed83SStephan T. Lavavej 
924dc0ed83SStephan T. Lavavej     test<std::basic_ifstream<char>*          >();
93*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
944dc0ed83SStephan T. Lavavej     test<std::basic_ifstream<wchar_t>*       >();
95*f4c1258dSLouis Dionne #endif
964dc0ed83SStephan T. Lavavej     test<std::basic_ifstream<unsigned short>*>();
974dc0ed83SStephan T. Lavavej 
984dc0ed83SStephan T. Lavavej     test<std::basic_ofstream<char>*          >();
99*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
1004dc0ed83SStephan T. Lavavej     test<std::basic_ofstream<wchar_t>*       >();
101*f4c1258dSLouis Dionne #endif
1024dc0ed83SStephan T. Lavavej     test<std::basic_ofstream<unsigned short>*>();
1034dc0ed83SStephan T. Lavavej 
1044dc0ed83SStephan T. Lavavej     test<std::basic_fstream<char>*          >();
105*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
1064dc0ed83SStephan T. Lavavej     test<std::basic_fstream<wchar_t>*       >();
107*f4c1258dSLouis Dionne #endif
1084dc0ed83SStephan T. Lavavej     test<std::basic_fstream<unsigned short>*>();
1094dc0ed83SStephan T. Lavavej 
1104dc0ed83SStephan T. Lavavej     test<std::istreambuf_iterator<char>*          >();
111*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
1124dc0ed83SStephan T. Lavavej     test<std::istreambuf_iterator<wchar_t>*       >();
113*f4c1258dSLouis Dionne #endif
1144dc0ed83SStephan T. Lavavej     test<std::istreambuf_iterator<unsigned short>*>();
1154dc0ed83SStephan T. Lavavej 
1164dc0ed83SStephan T. Lavavej     test<std::ostreambuf_iterator<char>*          >();
117*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
1184dc0ed83SStephan T. Lavavej     test<std::ostreambuf_iterator<wchar_t>*       >();
119*f4c1258dSLouis Dionne #endif
1204dc0ed83SStephan T. Lavavej     test<std::ostreambuf_iterator<unsigned short>*>();
1214dc0ed83SStephan T. Lavavej 
1224dc0ed83SStephan T. Lavavej     test<std::ios* >();
123*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
1244dc0ed83SStephan T. Lavavej     test<std::wios*>();
125*f4c1258dSLouis Dionne #endif
1264dc0ed83SStephan T. Lavavej 
1274dc0ed83SStephan T. Lavavej     test<std::streambuf*>();
1284dc0ed83SStephan T. Lavavej     test<std::istream*  >();
1294dc0ed83SStephan T. Lavavej     test<std::ostream*  >();
1304dc0ed83SStephan T. Lavavej     test<std::iostream* >();
1314dc0ed83SStephan T. Lavavej 
1324dc0ed83SStephan T. Lavavej     test<std::stringbuf*    >();
1334dc0ed83SStephan T. Lavavej     test<std::istringstream*>();
1344dc0ed83SStephan T. Lavavej     test<std::ostringstream*>();
1354dc0ed83SStephan T. Lavavej     test<std::stringstream* >();
1364dc0ed83SStephan T. Lavavej 
1374dc0ed83SStephan T. Lavavej     test<std::filebuf* >();
1384dc0ed83SStephan T. Lavavej     test<std::ifstream*>();
1394dc0ed83SStephan T. Lavavej     test<std::ofstream*>();
1404dc0ed83SStephan T. Lavavej     test<std::fstream* >();
1414dc0ed83SStephan T. Lavavej 
142*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
1434dc0ed83SStephan T. Lavavej     test<std::wstreambuf*>();
1444dc0ed83SStephan T. Lavavej     test<std::wistream*  >();
1454dc0ed83SStephan T. Lavavej     test<std::wostream*  >();
1464dc0ed83SStephan T. Lavavej     test<std::wiostream* >();
1474dc0ed83SStephan T. Lavavej 
1484dc0ed83SStephan T. Lavavej     test<std::wstringbuf*    >();
1494dc0ed83SStephan T. Lavavej     test<std::wistringstream*>();
1504dc0ed83SStephan T. Lavavej     test<std::wostringstream*>();
1514dc0ed83SStephan T. Lavavej     test<std::wstringstream* >();
1524dc0ed83SStephan T. Lavavej 
1534dc0ed83SStephan T. Lavavej     test<std::wfilebuf* >();
1544dc0ed83SStephan T. Lavavej     test<std::wifstream*>();
1554dc0ed83SStephan T. Lavavej     test<std::wofstream*>();
1564dc0ed83SStephan T. Lavavej     test<std::wfstream* >();
157*f4c1258dSLouis Dionne #endif
1584dc0ed83SStephan T. Lavavej 
1594dc0ed83SStephan T. Lavavej     test<std::fpos<std::mbstate_t>*>();
1604dc0ed83SStephan T. Lavavej     test<std::streampos*           >();
161*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
1624dc0ed83SStephan T. Lavavej     test<std::wstreampos*          >();
163*f4c1258dSLouis Dionne #endif
1642df59c50SJF Bastien 
1652df59c50SJF Bastien   return 0;
1665a83710eSEric Fiselier }
167