xref: /llvm-project/libcxx/src/ios.instantiations.cpp (revision c6f3b7bcd0596d30f8dabecdfb9e44f9a07b6e4c)
1c6eaa14eSLouis Dionne //===----------------------------------------------------------------------===//
2c6eaa14eSLouis Dionne //
3c6eaa14eSLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4c6eaa14eSLouis Dionne // See https://llvm.org/LICENSE.txt for license information.
5c6eaa14eSLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6c6eaa14eSLouis Dionne //
7c6eaa14eSLouis Dionne //===----------------------------------------------------------------------===//
8c6eaa14eSLouis Dionne 
9bbb0f2c7SArthur O'Dwyer #include <__config>
10bbb0f2c7SArthur O'Dwyer #include <fstream>
11bbb0f2c7SArthur O'Dwyer #include <ios>
12bbb0f2c7SArthur O'Dwyer #include <istream>
13bbb0f2c7SArthur O'Dwyer #include <ostream>
14bbb0f2c7SArthur O'Dwyer #include <sstream>
15bbb0f2c7SArthur O'Dwyer #include <streambuf>
16c6eaa14eSLouis Dionne 
17c6eaa14eSLouis Dionne _LIBCPP_BEGIN_NAMESPACE_STD
18c6eaa14eSLouis Dionne 
19c6eaa14eSLouis Dionne // Original explicit instantiations provided in the library
20c6eaa14eSLouis Dionne template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ios<char>;
21c6eaa14eSLouis Dionne template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_streambuf<char>;
22c6eaa14eSLouis Dionne template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_istream<char>;
23c6eaa14eSLouis Dionne template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ostream<char>;
24c6eaa14eSLouis Dionne template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_iostream<char>;
25c6eaa14eSLouis Dionne 
26*c6f3b7bcSNikolas Klauser #if _LIBCPP_HAS_WIDE_CHARACTERS
27f4c1258dSLouis Dionne template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ios<wchar_t>;
28f4c1258dSLouis Dionne template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_streambuf<wchar_t>;
29f4c1258dSLouis Dionne template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_istream<wchar_t>;
30f4c1258dSLouis Dionne template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ostream<wchar_t>;
31f4c1258dSLouis Dionne #endif
32f4c1258dSLouis Dionne 
33997d41cdSLouis Dionne // Additional instantiations added later. Whether programs rely on these being
3412563ea6Sphilnik777 // available is protected by _LIBCPP_AVAILABILITY_HAS_ADDITIONAL_IOSTREAM_EXPLICIT_INSTANTIATIONS_1.
35997d41cdSLouis Dionne template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_stringbuf<char>;
36997d41cdSLouis Dionne template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_stringstream<char>;
37997d41cdSLouis Dionne template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ostringstream<char>;
38997d41cdSLouis Dionne template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_istringstream<char>;
39af8c49dcSLouis Dionne 
40*c6f3b7bcSNikolas Klauser #if _LIBCPP_HAS_FILESYSTEM
41997d41cdSLouis Dionne template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ifstream<char>;
42997d41cdSLouis Dionne template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ofstream<char>;
43997d41cdSLouis Dionne template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_filebuf<char>;
44af8c49dcSLouis Dionne #endif
45997d41cdSLouis Dionne 
46c6eaa14eSLouis Dionne // Add more here if needed...
47c6eaa14eSLouis Dionne 
48c6eaa14eSLouis Dionne _LIBCPP_END_NAMESPACE_STD
49