Skip to content

Commit a75c9d0

Browse files
authored
[NFC][libc++] Moves ios_base's forward declaration. (#88027)
According to our synopsis it belonged to ios_fwd. This is not true in the C++11 version of the Standard, I did not validate against C++98. Moving this to ios's forward where it's declared in the standard allows removing a module quirk. An earlier removal of std::vectors forward declaration allows to remove all quirks for the iosfwd module part. Since iosfwd includes __fwd/ios.h this does not change the required includes.
1 parent 5462b27 commit a75c9d0

File tree

3 files changed

+2
-5
lines changed

3 files changed

+2
-5
lines changed

libcxx/include/__fwd/ios.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
_LIBCPP_BEGIN_NAMESPACE_STD
2020

21+
class _LIBCPP_EXPORTED_FROM_ABI ios_base;
22+
2123
template <class _CharT, class _Traits = char_traits<_CharT> >
2224
class _LIBCPP_TEMPLATE_VIS basic_ios;
2325

libcxx/include/iosfwd

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ template<> struct char_traits<wchar_t>;
2525
2626
template<class T> class allocator;
2727
28-
class ios_base;
2928
template <class charT, class traits = char_traits<charT> > class basic_ios;
3029
3130
template <class charT, class traits = char_traits<charT> > class basic_streambuf;
@@ -124,8 +123,6 @@ using wosyncstream = basic_osyncstream<wchar_t>; // C++20
124123

125124
_LIBCPP_BEGIN_NAMESPACE_STD
126125

127-
class _LIBCPP_EXPORTED_FROM_ABI ios_base;
128-
129126
template <class _CharT, class _Traits = char_traits<_CharT> >
130127
class _LIBCPP_TEMPLATE_VIS istreambuf_iterator;
131128
template <class _CharT, class _Traits = char_traits<_CharT> >

libcxx/utils/libcxx/test/modules.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@
2626
# The operators are added for private types like __iom_t10.
2727
SkipDeclarations["iomanip"] = ["std::operator<<", "std::operator>>"]
2828

29-
SkipDeclarations["iosfwd"] = ["std::ios_base", "std::vector"]
30-
3129
# This header also provides declarations in the namespace that might be
3230
# an error.
3331
SkipDeclarations["filesystem"] = [

0 commit comments

Comments
 (0)