diff --git a/stl/inc/queue b/stl/inc/queue index 5e58865e880..b73b8cd1fa7 100644 --- a/stl/inc/queue +++ b/stl/inc/queue @@ -126,8 +126,8 @@ public: #if _HAS_CXX23 template <_Container_compatible_range<_Ty> _Rng> void push_range(_Rng&& _Range) { - if constexpr (requires { c.append_range(_Range); }) { - c.append_range(_Range); + if constexpr (requires { c.append_range(_STD forward<_Rng>(_Range)); }) { + c.append_range(_STD forward<_Rng>(_Range)); } else { _RANGES copy(_Range, back_insert_iterator{c}); } @@ -394,8 +394,8 @@ public: void push_range(_Rng&& _Range) { const size_type _Old_size = c.size(); - if constexpr (requires { c.append_range(_Range); }) { - c.append_range(_Range); + if constexpr (requires { c.append_range(_STD forward<_Rng>(_Range)); }) { + c.append_range(_STD forward<_Rng>(_Range)); } else { _RANGES copy(_Range, back_insert_iterator{c}); } diff --git a/stl/inc/stack b/stl/inc/stack index a50b6ded462..b7ff44d3b80 100644 --- a/stl/inc/stack +++ b/stl/inc/stack @@ -111,8 +111,8 @@ public: #if _HAS_CXX23 template <_Container_compatible_range<_Ty> _Rng> void push_range(_Rng&& _Range) { - if constexpr (requires { c.append_range(_Range); }) { - c.append_range(_Range); + if constexpr (requires { c.append_range(_STD forward<_Rng>(_Range)); }) { + c.append_range(_STD forward<_Rng>(_Range)); } else { _RANGES copy(_Range, back_insert_iterator{c}); }