---
name: "std::__debug::forward_list"
section: "3"
platform: "linux"
package: "gcc"
version: "16.2.1+r23+gd564253eb6c8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/std::__debug::forward_list"
---

# std::\_\_debug::forward\_list(3)

Class std::forward\_list with safety/checking/debug instrumentation.

## NAME

std::\_\_debug::forward\_list\< \_Tp, \_Alloc \> - Class std::forward\_list with safety/checking/debug instrumentation.

## SYNOPSIS

\#include \<forward\_list\>

Inherits **\_\_gnu\_debug::\_Safe\_container\< \_SafeContainer, \_Alloc, \_SafeBase, \_IsCxx11AllocatorAware \>**.

Inherited by **std::\_\_debug::forward\_list\< \_Tp, \_Alloc \>**, and **std::\_\_debug::iterator\< \_Tp, \_Alloc \>**.

### Public Types

typedef \_Base::allocator\_type **allocator\_type**\
 typedef **\_\_gnu\_debug::\_Safe\_iterator**\< \_Base\_const\_iterator, forward\_list \> **const\_iterator**\
 typedef \_Base::const\_pointer **const\_pointer**\
 typedef \_Base::const\_reference **const\_reference**\
 typedef \_Base::difference\_type **difference\_type**\
 typedef **\_\_gnu\_debug::\_Safe\_iterator**\< \_Base\_iterator, forward\_list \> **iterator**\
 typedef \_Base::pointer **pointer**\
 typedef \_Base::reference **reference**\
 typedef \_Base::size\_type **size\_type**\
 typedef \_Tp **value\_type**\

### Public Member Functions

**forward\_list** (\_Base\_ref \_\_x)\
 template\<typename \_InputIterator, typename = std::\_RequireInputIter\<\_InputIterator\>\> **forward\_list** (\_InputIterator \_\_first, \_InputIterator \_\_last, const allocator\_type &\_\_al=allocator\_type())\
 **forward\_list** (const allocator\_type &\_\_al) noexcept\
 **forward\_list** (const forward\_list &)=default\
 **forward\_list** (const forward\_list &\_\_list, const allocator\_type &\_\_al)\
 **forward\_list** (forward\_list &&)=default\
 **forward\_list** (forward\_list &&\_\_list, const allocator\_type &\_\_al) noexcept(**std::is\_nothrow\_constructible**\< \_Base, \_Base, const allocator\_type & \>::value)\
 **forward\_list** (size\_type \_\_n, const \_\_type\_identity\_t\< \_Tp \> &\_\_value, const allocator\_type &\_\_al=allocator\_type())\
 **forward\_list** (size\_type \_\_n, const allocator\_type &\_\_al=allocator\_type())\
 **forward\_list** (**std::initializer\_list**\< \_Tp \> \_\_il, const allocator\_type &\_\_al=allocator\_type())\
 const \_Base & **\_M\_base** () const noexcept\
 \_Base & **\_M\_base** () noexcept\
 template\<typename \_InputIterator, typename = std::\_RequireInputIter\<\_InputIterator\>\> void **assign** (\_InputIterator \_\_first, \_InputIterator \_\_last)\
 void **assign** (size\_type \_\_n, const \_Tp &\_\_val)\
 void **assign** (**std::initializer\_list**\< \_Tp \> \_\_il)\
 const\_iterator **before\_begin** () const noexcept\
 iterator **before\_begin** () noexcept\
 const\_iterator **begin** () const noexcept\
 iterator **begin** () noexcept\
 const\_iterator **cbefore\_begin** () const noexcept\
 const\_iterator **cbegin** () const noexcept\
 const\_iterator **cend** () const noexcept\
 void **clear** () noexcept\
 template\<typename... \_Args\> iterator **emplace\_after** (const\_iterator \_\_pos, \_Args &&... \_\_args)\
 const\_iterator **end** () const noexcept\
 iterator **end** () noexcept\
 iterator **erase\_after** (const\_iterator \_\_pos)\
 iterator **erase\_after** (const\_iterator \_\_pos, const\_iterator \_\_last)\
 reference **front** ()\
 const\_reference **front** () const\
 template\<typename \_InputIterator, typename = std::\_RequireInputIter\<\_InputIterator\>\> iterator **insert\_after** (const\_iterator \_\_pos, \_InputIterator \_\_first, \_InputIterator \_\_last)\
 iterator **insert\_after** (const\_iterator \_\_pos, \_Tp &&\_\_val)\
 iterator **insert\_after** (const\_iterator \_\_pos, const \_Tp &\_\_val)\
 iterator **insert\_after** (const\_iterator \_\_pos, size\_type \_\_n, const \_Tp &\_\_val)\
 iterator **insert\_after** (const\_iterator \_\_pos, **std::initializer\_list**\< \_Tp \> \_\_il)\
 void **merge** (forward\_list &&\_\_list)\
 template\<typename \_Comp\> void **merge** (forward\_list &&\_\_list, \_Comp \_\_comp)\
 void **merge** (forward\_list &\_\_list)\
 template\<typename \_Comp\> void **merge** (forward\_list &\_\_list, \_Comp \_\_comp)\
 forward\_list & **operator=** (const forward\_list &)=default\
 forward\_list & **operator=** (forward\_list &&)=default\
 forward\_list & **operator=** (**std::initializer\_list**\< \_Tp \> \_\_il)\
 void **pop\_front** ()\
 \_\_remove\_return\_type **remove** (const \_Tp &\_\_val)\
 template\<typename \_Pred\> \_\_remove\_return\_type **remove\_if** (\_Pred \_\_pred)\
 void **resize** (size\_type \_\_sz)\
 void **resize** (size\_type \_\_sz, const value\_type &\_\_val)\
 void **splice\_after** (const\_iterator \_\_pos, forward\_list &&\_\_list)\
 void **splice\_after** (const\_iterator \_\_pos, forward\_list &&\_\_list, const\_iterator \_\_before, const\_iterator \_\_last)\
 void **splice\_after** (const\_iterator \_\_pos, forward\_list &&\_\_list, const\_iterator \_\_i)\
 void **splice\_after** (const\_iterator \_\_pos, forward\_list &\_\_list)\
 void **splice\_after** (const\_iterator \_\_pos, forward\_list &\_\_list, const\_iterator \_\_before, const\_iterator \_\_last)\
 void **splice\_after** (const\_iterator \_\_pos, forward\_list &\_\_list, const\_iterator \_\_i)\
 void **swap** (forward\_list &\_\_list) noexcept(noexcept(**declval**\< \_Base & \>().swap(\_\_list)))\
 \_\_remove\_return\_type **unique** ()\
 template\<typename \_BinPred\> \_\_remove\_return\_type **unique** (\_BinPred \_\_binary\_pred)\

### Protected Member Functions

constexpr void **\_M\_swap** (const \_Safe\_container &\_\_x) const noexcept\

### Friends

template\<typename \_ItT, typename \_SeqT, typename \_CatT\> class **::\_\_gnu\_debug::\_Safe\_iterator**\

## Detailed Description

### template\<typename \_Tp, typename \_Alloc = std::allocator\<\_Tp\>\>

class std::\_\_debug::forward\_list\< \_Tp, \_Alloc \>"Class std::forward\_list with safety/checking/debug instrumentation.

## Author

Generated automatically by Doxygen for libstdc++ from the source code.
