1e8d8bef9SDimitry Andric //===----------------------------------------------------------------------===// 2e8d8bef9SDimitry Andric // 3e8d8bef9SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4e8d8bef9SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5e8d8bef9SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6e8d8bef9SDimitry Andric // 7e8d8bef9SDimitry Andric //===----------------------------------------------------------------------===// 8e8d8bef9SDimitry Andric 981ad6265SDimitry Andric #include <__config> 1081ad6265SDimitry Andric #include <fstream> 1181ad6265SDimitry Andric #include <ios> 1281ad6265SDimitry Andric #include <istream> 1381ad6265SDimitry Andric #include <ostream> 1481ad6265SDimitry Andric #include <sstream> 1581ad6265SDimitry Andric #include <streambuf> 16e8d8bef9SDimitry Andric 17e8d8bef9SDimitry Andric _LIBCPP_BEGIN_NAMESPACE_STD 18e8d8bef9SDimitry Andric 19e8d8bef9SDimitry Andric // Original explicit instantiations provided in the library 20e8d8bef9SDimitry Andric template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ios<char>; 21e8d8bef9SDimitry Andric template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_streambuf<char>; 22e8d8bef9SDimitry Andric template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_istream<char>; 23e8d8bef9SDimitry Andric template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ostream<char>; 24e8d8bef9SDimitry Andric template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_iostream<char>; 25e8d8bef9SDimitry Andric 26349cc55cSDimitry Andric #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS 27349cc55cSDimitry Andric template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ios<wchar_t>; 28349cc55cSDimitry Andric template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_streambuf<wchar_t>; 29349cc55cSDimitry Andric template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_istream<wchar_t>; 30349cc55cSDimitry Andric template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ostream<wchar_t>; 31349cc55cSDimitry Andric #endif 32349cc55cSDimitry Andric 33e8d8bef9SDimitry Andric // Additional instantiations added later. Whether programs rely on these being 34*5f757f3fSDimitry Andric // available is protected by _LIBCPP_AVAILABILITY_HAS_ADDITIONAL_IOSTREAM_EXPLICIT_INSTANTIATIONS_1. 35e8d8bef9SDimitry Andric template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_stringbuf<char>; 36e8d8bef9SDimitry Andric template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_stringstream<char>; 37e8d8bef9SDimitry Andric template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ostringstream<char>; 38e8d8bef9SDimitry Andric template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_istringstream<char>; 39bdd1243dSDimitry Andric 4006c3fb27SDimitry Andric #ifndef _LIBCPP_HAS_NO_FILESYSTEM 41e8d8bef9SDimitry Andric template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ifstream<char>; 42e8d8bef9SDimitry Andric template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ofstream<char>; 43e8d8bef9SDimitry Andric template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_filebuf<char>; 44bdd1243dSDimitry Andric #endif 45e8d8bef9SDimitry Andric 46e8d8bef9SDimitry Andric // Add more here if needed... 47e8d8bef9SDimitry Andric 48e8d8bef9SDimitry Andric _LIBCPP_END_NAMESPACE_STD 49