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