---
name: "std::__debug::forward_list"
section: "3cxx"
platform: "linux"
package: "libstdc++-12-doc"
version: "12.4.0-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/std::__debug::forward_list/3cxx"
---

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

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 \>**, and forward\_list\< \_Tp, std::allocator\< \_Tp \> \>.

### 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

**void** **\_M\_swap** (\_Safe\_container &\_\_x) 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.
