[gcc r16-1501] libstdc++: add a workaround for format_kind<optional<T>> [PR120644]
Giuseppe D'Angelo
peppe@gcc.gnu.org
Fri Jun 13 13:20:27 GMT 2025
https://gcc.gnu.org/g:f6f4efdf397269793167fb1303967e7ad0e467a7
commit r16-1501-gf6f4efdf397269793167fb1303967e7ad0e467a7
Author: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Date: Fri Jun 13 11:38:23 2025 +0200
libstdc++: add a workaround for format_kind<optional<T>> [PR120644]
The specialization of format_kind for optional is causing a problem when
optional is imported and included. The comments on the PR strongly
suggest that this is a frontend bug; this commit just works around the
issue by specifying the type of format_kind<optional<T>> to be
`range_format`, rather than leaving the compiler deduce it via `auto`.
PR c++/120644
libstdc++-v3/ChangeLog:
* include/std/optional (format_kind): Do not use `auto`.
Diff:
---
libstdc++-v3/include/std/optional | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libstdc++-v3/include/std/optional b/libstdc++-v3/include/std/optional
index 2ae71f11e213..cc7af5bbd7d2 100644
--- a/libstdc++-v3/include/std/optional
+++ b/libstdc++-v3/include/std/optional
@@ -1815,7 +1815,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
ranges::enable_view<optional<_Tp>> = true;
template<typename _Tp>
- inline constexpr auto
+ inline constexpr range_format
format_kind<optional<_Tp>> = range_format::disabled;
#endif // __cpp_lib_optional_range_support
More information about the Libstdc++-cvs
mailing list