// <experimental/deque> -*- C++ -*-
-// Copyright (C) 2015 Free Software Foundation, Inc.
+// Copyright (C) 2015-2024 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
/** @file experimental/deque
* This is a TS C++ Library header.
+ * @ingroup libfund-ts
*/
#ifndef _GLIBCXX_EXPERIMENTAL_DEQUE
#pragma GCC system_header
-#if __cplusplus <= 201103L
-# include <bits/c++14_warning.h>
-#else
+#include <bits/requires_hosted.h> // experimental is currently omitted
+
+#if __cplusplus >= 201402L
#include <deque>
#include <algorithm>
+#include <experimental/memory_resource>
namespace std _GLIBCXX_VISIBILITY(default)
{
+_GLIBCXX_BEGIN_NAMESPACE_VERSION
+
namespace experimental
{
inline namespace fundamentals_v2
{
-_GLIBCXX_BEGIN_NAMESPACE_VERSION
-
template<typename _Tp, typename _Alloc, typename _Predicate>
- void
+ inline void
erase_if(deque<_Tp, _Alloc>& __cont, _Predicate __pred)
{
__cont.erase(std::remove_if(__cont.begin(), __cont.end(), __pred),
}
template<typename _Tp, typename _Alloc, typename _Up>
- void
+ inline void
erase(deque<_Tp, _Alloc>& __cont, const _Up& __value)
{
__cont.erase(std::remove(__cont.begin(), __cont.end(), __value),
__cont.end());
}
-_GLIBCXX_END_NAMESPACE_VERSION
+ namespace pmr {
+ template<typename _Tp>
+ using deque = std::deque<_Tp, polymorphic_allocator<_Tp>>;
+
+ } // namespace pmr
} // namespace fundamentals_v2
} // namespace experimental
+_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
#endif // C++14