---
name: "__gnu_cxx::slist"
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/__gnu_cxx::slist"
---

# \_\_gnu\_cxx::slist(3)

## NAME

\_\_gnu\_cxx::slist\< \_Tp, \_Alloc \>

## SYNOPSIS

\#include \<slist\>

### Public Types

typedef \_Base::allocator\_type **allocator\_type**\
 typedef \_Slist\_iterator\< \_Tp, const \_Tp &, const \_Tp \* \> **const\_iterator**\
 typedef const value\_type \* **const\_pointer**\
 typedef const value\_type & **const\_reference**\
 typedef std::ptrdiff\_t **difference\_type**\
 typedef \_Slist\_iterator\< \_Tp, \_Tp &, \_Tp \* \> **iterator**\
 typedef value\_type \* **pointer**\
 typedef value\_type & **reference**\
 typedef std::size\_t **size\_type**\
 typedef \_Tp **value\_type**\

### Public Member Functions

template\<class \_InputIterator\> **slist** (\_InputIterator \_\_first, \_InputIterator \_\_last, const allocator\_type &\_\_a=allocator\_type())\
 **slist** (const allocator\_type &\_\_a=allocator\_type())\
 **slist** (const slist &\_\_x)\
 **slist** (size\_type \_\_n)\
 **slist** (size\_type \_\_n, const value\_type &\_\_x, const allocator\_type &\_\_a=allocator\_type())\
 template\<class \_InputIterator\> void **\_M\_assign\_dispatch** (\_InputIterator \_\_first, \_InputIterator \_\_last, std::\_\_false\_type)\
 template\<class \_Integer\> void **\_M\_assign\_dispatch** (\_Integer \_\_n, \_Integer \_\_val, std::\_\_true\_type)\
 void **\_M\_fill\_assign** (size\_type \_\_n, const \_Tp &\_\_val)\
 template\<class \_InputIterator\> void **assign** (\_InputIterator \_\_first, \_InputIterator \_\_last)\
 void **assign** (size\_type \_\_n, const \_Tp &\_\_val)\
 iterator **before\_begin** ()\
 const\_iterator **before\_begin** () const\
 iterator **begin** ()\
 const\_iterator **begin** () const\
 void **clear** ()\
 bool **empty** () const\
 iterator **end** ()\
 const\_iterator **end** () const\
 iterator **erase** (iterator \_\_first, iterator \_\_last)\
 iterator **erase** (iterator \_\_pos)\
 iterator **erase\_after** (iterator \_\_before\_first, iterator \_\_last)\
 iterator **erase\_after** (iterator \_\_pos)\
 reference **front** ()\
 const\_reference **front** () const\
 allocator\_type **get\_allocator** () const\
 iterator **insert** (iterator \_\_pos)\
 template\<class \_InIterator\> void **insert** (iterator \_\_pos, \_InIterator \_\_first, \_InIterator \_\_last)\
 iterator **insert** (iterator \_\_pos, const value\_type &\_\_x)\
 void **insert** (iterator \_\_pos, size\_type \_\_n, const value\_type &\_\_x)\
 iterator **insert\_after** (iterator \_\_pos)\
 template\<class \_InIterator\> void **insert\_after** (iterator \_\_pos, \_InIterator \_\_first, \_InIterator \_\_last)\
 iterator **insert\_after** (iterator \_\_pos, const value\_type &\_\_x)\
 void **insert\_after** (iterator \_\_pos, size\_type \_\_n, const value\_type &\_\_x)\
 size\_type **max\_size** () const\
 template\<class \_StrictWeakOrdering\> void **merge** (slist &, \_StrictWeakOrdering)\
 void **merge** (slist &\_\_x)\
 slist & **operator=** (const slist &\_\_x)\
 void **pop\_front** ()\
 iterator **previous** (const\_iterator \_\_pos)\
 const\_iterator **previous** (const\_iterator \_\_pos) const\
 void **push\_front** ()\
 void **push\_front** (const value\_type &\_\_x)\
 void **remove** (const \_Tp &\_\_val)\
 template\<class \_Predicate\> void **remove\_if** (\_Predicate \_\_pred)\
 void **resize** (size\_type new\_size)\
 void **resize** (size\_type new\_size, const \_Tp &\_\_x)\
 void **reverse** ()\
 size\_type **size** () const\
 void **sort** ()\
 template\<class \_StrictWeakOrdering\> void **sort** (\_StrictWeakOrdering \_\_comp)\
 void **splice** (iterator \_\_pos, slist &\_\_x)\
 void **splice** (iterator \_\_pos, slist &\_\_x, iterator \_\_first, iterator \_\_last)\
 void **splice** (iterator \_\_pos, slist &\_\_x, iterator \_\_i)\
 void **splice\_after** (iterator \_\_pos, iterator \_\_before\_first, iterator \_\_before\_last)\
 void **splice\_after** (iterator \_\_pos, iterator \_\_prev)\
 void **splice\_after** (iterator \_\_pos, slist &\_\_x)\
 void **swap** (slist &\_\_x)\
 void **unique** ()\
 template\<class \_BinaryPredicate\> void **unique** (\_BinaryPredicate \_\_pred)\

### Static Private Member Functions

static constexpr size\_type **max\_size** (const \_Alloc &\_\_a) noexcept\
 The maximum supported allocation size.

## Detailed Description

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

class \_\_gnu\_cxx::slist\< \_Tp, \_Alloc \>"This is an SGI extension.

**Todo**

Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation\_style.html

## Author

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