libstdc++: Define deleted wchar_t overloads unconditionally [PR 98725]
authorJonathan Wakely <jwakely@redhat.com>
Fri, 8 Oct 2021 13:26:09 +0000 (14:26 +0100)
committerJonathan Wakely <jwakely@redhat.com>
Fri, 8 Oct 2021 23:57:50 +0000 (00:57 +0100)
We don't need to have <wchar.h> support in order to delete overloads
for inserting wide characters into narrow streams.

libstdc++-v3/ChangeLog:

PR libstdc++/98725
* include/std/ostream (operator<<(basic_ostream<char, Tr>&, wchar_t))
(operator<<(basic_ostream<char, Tr>&, const wchar_t*)): Always
define as deleted. Do not check _GLIBCXX_USE_WCHAR_T.

libstdc++-v3/include/std/ostream

index 7d39c57..4d7b9b4 100644 (file)
@@ -533,11 +533,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   // The following deleted overloads prevent formatting character values as
   // numeric values.
 
-#ifdef _GLIBCXX_USE_WCHAR_T
   template<typename _Traits>
     basic_ostream<char, _Traits>&
     operator<<(basic_ostream<char, _Traits>&, wchar_t) = delete;
-#endif // _GLIBCXX_USE_WCHAR_T
 
 #ifdef _GLIBCXX_USE_CHAR8_T
   template<typename _Traits>
@@ -629,11 +627,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
    // The following deleted overloads prevent formatting strings as
    // pointer values.
 
-#ifdef _GLIBCXX_USE_WCHAR_T
   template<typename _Traits>
     basic_ostream<char, _Traits>&
     operator<<(basic_ostream<char, _Traits>&, const wchar_t*) = delete;
-#endif // _GLIBCXX_USE_WCHAR_T
 
 #ifdef _GLIBCXX_USE_CHAR8_T
   template<typename _Traits>