From 6e6b517b8ad658151dc2f1623147cacfadcde9db Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 31 Jan 2021 23:33:42 +0200 Subject: [PATCH] Fixed build on MacOS ( Apple Clang ) --- include/stdfwd.hh | 276 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 276 insertions(+) diff --git a/include/stdfwd.hh b/include/stdfwd.hh index d186cbb..53bd673 100644 --- a/include/stdfwd.hh +++ b/include/stdfwd.hh @@ -600,6 +600,282 @@ template class array; _STD_END +#elif defined(STDFWD_IS_LIBCPP) + +namespace std { + + // +template +class _LIBCPP_TEMPLATE_VIS initializer_list; + +} + +_LIBCPP_BEGIN_NAMESPACE_STD + +typedef __PTRDIFF_TYPE__ ptrdiff_t; +typedef __SIZE_TYPE__ size_t; + +// +template +struct pair; + +// +template +class tuple; + +// +class any; + +// +template +class optional; +struct nullopt_t; + +// +template +class variant; +struct monostate; + +// +template +class shared_ptr; +template +struct default_delete; +template +class unique_ptr; +template +class weak_ptr; +template +class allocator; + +// +template +struct complex; + +// +template +class valarray; + +// +class random_device; + +// +template +struct atomic; +struct atomic_flag; + +// +class mutex; +class timed_mutex; +class recursive_mutex; +class recursive_timed_mutex; + +// +class shared_mutex; +class shared_timed_mutex; + +// +class thread; + +// +template +class future; +template +class shared_future; +template +class packaged_task; +template +class promise; + +// +class condition_variable; +inline namespace _V2 +{ +class condition_variable_any; +} + +// +template +struct char_traits; +template +class _LIBCPP_TEMPLATE_VIS basic_string; + +using string = basic_string, allocator>; +using wstring = basic_string, allocator>; +using u16string = basic_string, allocator>; +using u32string = basic_string, allocator>; + +// +template +class basic_string_view; +using string_view = basic_string_view>; +using wstring_view = basic_string_view>; +using u16string_view = basic_string_view>; +using u32string_view = basic_string_view>; + +// +template +class function; +template +struct hash; +template +struct equal_to; +template +struct not_equal_to; +template +struct greater; +template +struct less; +template +struct greater_equal; +template +struct less_equal; + +// - not in container for some reason +template +class stack; + +// - not in container for some reason +template +class queue; +template +class priority_queue; + +// +template +class vector; + +// +template +class deque; + +// +template +class list; + +// +template +struct regex_traits; +template +class basic_regex; +using regex = basic_regex>; +template +class sub_match; +template +class match_results; + +// +template +class forward_list; + +// +template +class map; +template +class multimap; + +// +template +class set; +template +class multiset; + +// +template +class unordered_map; +template +class unordered_multimap; + +// +template +class unordered_set; +template +class unordered_multiset; + +// +class ios_base; +template +class basic_ios; +template +class basic_streambuf; +template +class basic_istream; +template +class basic_ostream; +template +class basic_iostream; + +template +class basic_stringbuf; +template +class basic_istringstream; +template +class basic_ostringstream; +template +class basic_stringstream; + +template +class basic_filebuf; +template +class basic_ifstream; +template +class basic_ofstream; +template +class basic_fstream; +template +class istreambuf_iterator; +template +class ostreambuf_iterator; + +using ios = basic_ios>; +using wios = basic_ios>; + +using streambuf = basic_streambuf>; +using istream = basic_istream>; +using ostream = basic_ostream>; +using iostream = basic_iostream>; + +using stringbuf = basic_stringbuf, allocator>; +using istringstream = basic_istringstream, allocator>; +using ostringstream = basic_ostringstream, allocator>; +using stringstream = basic_stringstream, allocator>; + +using filebuf = basic_filebuf>; +using ifstream = basic_ifstream>; +using ofstream = basic_ofstream>; +using fstream = basic_fstream>; + +using wstreambuf = basic_streambuf>; +using wistream = basic_istream>; +using wostream = basic_ostream>; +using wiostream = basic_iostream>; + +using wstringbuf = basic_stringbuf, allocator>; +using wistringstream = basic_istringstream, allocator>; +using wostringstream = basic_ostringstream, allocator>; +using wstringstream = basic_stringstream, allocator>; + +using wfilebuf = basic_filebuf>; +using wifstream = basic_ifstream>; +using wofstream = basic_ofstream>; +using wfstream = basic_fstream>; + + +template +class _LIBCPP_TEMPLATE_VIS bitset; + +template +struct _LIBCPP_TEMPLATE_VIS array; + +_LIBCPP_END_NAMESPACE_STD + +_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM + +// +class path; + +_LIBCPP_END_NAMESPACE_FILESYSTEM + #else #error "not implemented"