[gcc r17-4150] libstdc++: fix inplace_vector deprecation warning
Tomasz Kaminski
tkaminsk@gcc.gnu.org
Fri Sep 11 07:23:52 GMT 2026
https://gcc.gnu.org/g:20d1487f74ea914d2b8d7be71886275d59b166fd
commit r17-4150-g20d1487f74ea914d2b8d7be71886275d59b166fd
Author: Avi Kivity <avi@scylladb.com>
Date: Thu Sep 10 23:56:33 2026 +0300
libstdc++: fix inplace_vector deprecation warning
Practically anything that touches std::inplace_vector causes
this warning to be generated:
inplace_vector:853:20: warning: 'is_trivial_v<unsigned int>' is deprecated: use 'is_trivially_default_constructible_v && is_trivially_copyable_v' instead [-Wdeprecated-declarations]
853 | if constexpr (is_trivial_v<_Tp>)
| ^
inplace_vector:128:2: note: in instantiation of member function 'std::inplace_vector<unsigned int, 2>::_M_init' requested here
128 | _M_init();
| ^
Fix it by following the warning's recommendation.
PR libstdc++/127325
libstdc++-v3/ChangeLog:
* include/std/inplace_vector: replace is_trivial_v with
is_trivially_default_constructible_v and is_trivially_copyable_v.
Signed-off-by: Avi Kivity <avi@scylladb.com>
Diff:
---
libstdc++-v3/include/std/inplace_vector | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/libstdc++-v3/include/std/inplace_vector b/libstdc++-v3/include/std/inplace_vector
index 6d67a740f21d..a2b5f31be923 100644
--- a/libstdc++-v3/include/std/inplace_vector
+++ b/libstdc++-v3/include/std/inplace_vector
@@ -862,7 +862,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
else
{
// TODO: use new(_M_elems) _Tp[_Nm]() once PR121068 is fixed
- if constexpr (is_trivial_v<_Tp>)
+ if constexpr (is_trivially_default_constructible_v<_Tp>
+ && is_trivially_copyable_v<_Tp>)
for (size_t __i = 0; __i < _Nm; ++__i)
_M_elems[__i] = _Tp();
else
More information about the Libstdc++-cvs
mailing list