---
name: "std::__detail"
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::__detail"
---

# std::\_\_detail(3)

Implementation details not part of the namespace std interface.

## NAME

std::\_\_detail - Implementation details not part of the namespace std interface.

## SYNOPSIS

### Classes

struct **\_BracketMatcher**\
 Matches a character range (bracket expression).  class **\_Compiler**\
 Builds an NFA from an input iterator range.  class **\_Executor**\
 Takes a regex and an input string and does the matching.  struct **\_List\_node\_base**\
 Common part of a node in the list.  struct **\_List\_node\_header**\
 The list node header.  struct **\_Quoted\_string**\
 Struct for delimited strings.  class **\_Scanner**\
 Scans an input range for regex tokens.  class **\_StateSeq**\
 Describes a sequence of one or more \_State, its current start and end(s). This structure contains fragments of an NFA during construction.

### Typedefs

template\<typename \_Tp, typename \_Up\> using **\_\_cmp3way\_res\_t**\
 template\<typename \_Tp\> using **\_\_cref**\
 template\<typename \_Iter\> using **\_\_iter\_concept**\
 template\<indirectly\_readable \_It\> using **\_\_iter\_const\_rvalue\_reference\_t**\
 template\<typename \_Tp\> using **\_\_iter\_diff\_t**\
 template\<typename \_Iter, typename \_Tp = \_Iter\> using **\_\_iter\_traits**\
 template\<typename \_Tp\> using **\_\_iter\_value\_t**\
 template\<typename \_Tp\> using **\_\_range\_iter\_t**\
 template\<typename \_Tp\> using **\_\_unsigned\_least\_t**\
 template\<typename \_Tp\> using **\_\_with\_ref**\
 template\<typename \_CharT\> using **\_Matcher**\
 typedef long **\_StateIdT**\

### Enumerations

enum **\_ExecutorFrameOpcode** : unsigned char { **\_S\_fopcode\_next**, **\_S\_fopcode\_fallback\_next**, **\_S\_fopcode\_rep\_once\_more**, **\_S\_fopcode\_fallback\_rep\_once\_more**, **\_S\_fopcode\_posix\_alternative**, **\_S\_fopcode\_merge\_sol**, **\_S\_fopcode\_restore\_cur\_results**, **\_S\_fopcode\_restore\_rep\_count**, **\_S\_fopcode\_decrement\_rep\_count** }\
 enum **\_Opcode** : int { **\_S\_opcode\_unknown**, **\_S\_opcode\_alternative**, **\_S\_opcode\_repeat**, **\_S\_opcode\_backref**, **\_S\_opcode\_line\_begin\_assertion**, **\_S\_opcode\_line\_end\_assertion**, **\_S\_opcode\_word\_boundary**, **\_S\_opcode\_subexpr\_lookahead**, **\_S\_opcode\_subexpr\_begin**, **\_S\_opcode\_subexpr\_end**, **\_S\_opcode\_dummy**, **\_S\_opcode\_match**, **\_S\_opcode\_accept** }\
 Operation codes that define the type of transitions within the base NFA that represents the regular expression.  enum class **\_RegexExecutorPolicy** : int { **\_S\_auto**, **\_S\_alternate** }\

### Functions

template\<typename \_Res, typename \_Tp\> constexpr \_Res **\_\_abs\_r** (\_Tp \_\_val)\
 template\<typename\> void **\_\_abs\_r** (bool)=delete\
 template\<typename \_ChTraits\> constexpr auto **\_\_char\_traits\_cmp\_cat** (int \_\_cmp) noexcept\
 template\<typename... \_Ts\> constexpr auto **\_\_common\_cmp\_cat** ()\
 template\<typename \_Container, typename \_UnsafeContainer, typename \_Predicate\> constexpr \_Container::size\_type **\_\_erase\_if** (\_Container &\_\_cont, \_UnsafeContainer &\_\_ucont, \_Predicate \_\_pred)\
 template\<typename \_Container, typename \_UnsafeContainer, typename \_Predicate\> \_Container::size\_type **\_\_erase\_nodes\_if** (\_Container &\_\_cont, \_UnsafeContainer &\_\_ucont, \_Predicate \_\_pred)\
 template\<typename \_ValT, typename \_CharT, typename \_Traits\> **basic\_istream**\< \_CharT, \_Traits \> & **\_\_extract\_params** (**basic\_istream**\< \_CharT, \_Traits \> &\_\_is, vector\< \_ValT \> &\_\_vals, size\_t \_\_n)\
 template\<bool \_DecOnly, typename \_Tp\> constexpr bool **\_\_from\_chars\_alnum** (const char \*&\_\_first, const char \*\_\_last, \_Tp &\_\_val, int \_\_base)\
 std::from\_chars implementation for integers in any base. If \_DecOnly is true, then we may assume \_\_base is at most 10.  template\<bool \_DecOnly = false\> constexpr unsigned char **\_\_from\_chars\_alnum\_to\_val** (unsigned char \_\_c)\
 template\<bool \_DecOnly, typename \_Tp\> constexpr bool **\_\_from\_chars\_pow2\_base** (const char \*&\_\_first, const char \*\_\_last, \_Tp &\_\_val, int \_\_base)\
 std::from\_chars implementation for integers in a power-of-two base. If \_DecOnly is true, then we may assume \_\_base is at most 8.  template\<typename \_Tp\> constexpr \_Tp **\_\_gcd** (\_Tp \_\_m, \_Tp \_\_n)\
 template\<typename \_Tp\> \_Tp \* **\_\_get\_temporary\_buffer** (ptrdiff\_t \_\_len) noexcept\
 template\<typename \_Tp\> constexpr bool **\_\_p1\_representable\_as\_double** (\_Tp \_\_x) noexcept\
 template\<typename \_Tp\> constexpr bool **\_\_raise\_and\_add** (\_Tp &\_\_val, int \_\_base, unsigned char \_\_c)\
 template\<typename \_BiIter, typename \_Alloc, typename \_CharT, typename \_TraitsT\> bool **\_\_regex\_algo\_impl** (\_BiIter \_\_s, \_BiIter \_\_e, **match\_results**\< \_BiIter, \_Alloc \> &\_\_m, const **basic\_regex**\< \_CharT, \_TraitsT \> &\_\_re, **regex\_constants::match\_flag\_type** \_\_flags, \_RegexExecutorPolicy \_\_policy, bool \_\_match\_mode)\
 template\<typename \_Tp\> constexpr bool **\_\_representable\_as\_double** (\_Tp \_\_x) noexcept\
 template\<typename \_Tp\> void **\_\_return\_temporary\_buffer** (\_Tp \*\_\_p, size\_t \_\_len)\
 template\<typename \_Tp\> constexpr **to\_chars\_result** **\_\_to\_chars** (char \*\_\_first, char \*\_\_last, \_Tp \_\_val, int \_\_base) noexcept\
 template\<typename \_Tp\> constexpr **to\_chars\_result** **\_\_to\_chars\_10** (char \*\_\_first, char \*\_\_last, \_Tp \_\_val) noexcept\
 template\<typename \_Tp\> constexpr void **\_\_to\_chars\_10\_impl** (char \*\_\_first, unsigned \_\_len, \_Tp \_\_val) noexcept\
 template\<typename \_Tp\> constexpr **to\_chars\_result** **\_\_to\_chars\_16** (char \*\_\_first, char \*\_\_last, \_Tp \_\_val) noexcept\
 template\<typename \_Tp\> constexpr **to\_chars\_result** **\_\_to\_chars\_2** (char \*\_\_first, char \*\_\_last, \_Tp \_\_val) noexcept\
 template\<typename \_Tp\> constexpr **to\_chars\_result** **\_\_to\_chars\_8** (char \*\_\_first, char \*\_\_last, \_Tp \_\_val) noexcept\
 template\<typename \_Tp\> constexpr unsigned **\_\_to\_chars\_len** (\_Tp \_\_value, int \_\_base) noexcept\
 template\<typename \_Tp\> constexpr unsigned **\_\_to\_chars\_len\_2** (\_Tp \_\_value) noexcept\
 template\<typename \_CharT, typename \_Traits, typename \_String\> **std::basic\_ostream**\< \_CharT, \_Traits \> & **operator\<\<** (**std::basic\_ostream**\< \_CharT, \_Traits \> &\_\_os, const **\_Quoted\_string**\< \_String, \_CharT \> &\_\_str)\
 Inserter for quoted strings.  template\<typename \_CharT, typename \_Traits\> **std::basic\_ostream**\< \_CharT, \_Traits \> & **operator\<\<** (**std::basic\_ostream**\< \_CharT, \_Traits \> &\_\_os, const **\_Quoted\_string**\< const \_CharT \*, \_CharT \> &\_\_str)\
 Inserter for quoted strings.  template\<typename \_CharT, typename \_Traits, typename \_Alloc\> **std::basic\_istream**\< \_CharT, \_Traits \> & **operator\>\>** (**std::basic\_istream**\< \_CharT, \_Traits \> &\_\_is, const **\_Quoted\_string**\< **basic\_string**\< \_CharT, \_Traits, \_Alloc \> &, \_CharT \> &\_\_str)\
 Extractor for delimited strings. The left and right delimiters can be different.

### Variables

template\<typename \_Tp\> constexpr unsigned **\_\_cmp\_cat\_id**\
 template\<\> constexpr unsigned **\_\_cmp\_cat\_id\< partial\_ordering \>**\
 template\<\> constexpr unsigned **\_\_cmp\_cat\_id\< strong\_ordering \>**\
 template\<\> constexpr unsigned **\_\_cmp\_cat\_id\< weak\_ordering \>**\
 template\<typename \_Tp\> constexpr bool **\_\_destructible**\
 template\<typename \_Tp\> constexpr bool **\_\_destructible\< \_Tp & \>**\
 template\<typename \_Tp\> constexpr bool **\_\_destructible\< \_Tp && \>**\
 template\<typename \_Tp, size\_t \_Nm\> constexpr bool **\_\_destructible\< \_Tp\[\_Nm\]\>**\
 template\<typename \_Tp\> constexpr bool **\_\_destructible\_impl**\
 template\<typename \_Tp\> constexpr bool **\_\_destructible\_impl\< \_Tp \>**\
 template\<typename \_Tp\> constexpr bool **\_\_is\_const\_iterator**\
 template\<typename \_It\> constexpr bool **\_\_is\_const\_iterator\< basic\_const\_iterator\< \_It \> \>**\
 template\<typename \_Tp\> constexpr bool **\_\_is\_ref\_wrapper**\
 template\<typename \_Tp\> constexpr bool **\_\_is\_ref\_wrapper\< reference\_wrapper\< \_Tp \> \>**\
 constexpr \_StateIdT **\_S\_invalid\_state\_id**\

## Detailed Description

Implementation details not part of the namespace std interface.

## Function Documentation

### template\<bool \_DecOnly, typename \_Tp\> bool std::\_\_detail::\_\_from\_chars\_alnum (const char \*& \_\_first, const char \* \_\_last, \_Tp & \_\_val, int \_\_base) \[constexpr\]

std::from\_chars implementation for integers in any base. If \_DecOnly is true, then we may assume \_\_base is at most 10.

Referenced by **std::from\_chars()**.

### template\<bool \_DecOnly, typename \_Tp\> bool std::\_\_detail::\_\_from\_chars\_pow2\_base (const char \*& \_\_first, const char \* \_\_last, \_Tp & \_\_val, int \_\_base) \[constexpr\]

std::from\_chars implementation for integers in a power-of-two base. If \_DecOnly is true, then we may assume \_\_base is at most 8.

Referenced by **std::from\_chars()**.

### template\<typename \_CharT, typename \_Traits, typename \_String\> std::basic\_ostream\< \_CharT, \_Traits \> & std::\_\_detail::operator\<\< (std::basic\_ostream\< \_CharT, \_Traits \> & \_\_os, const \_Quoted\_string\< \_String, \_CharT \> & \_\_str)

Inserter for quoted strings.

### template\<typename \_CharT, typename \_Traits\> std::basic\_ostream\< \_CharT, \_Traits \> & std::\_\_detail::operator\<\< (std::basic\_ostream\< \_CharT, \_Traits \> & \_\_os, const \_Quoted\_string\< const \_CharT \*, \_CharT \> & \_\_str)

Inserter for quoted strings.

### template\<typename \_CharT, typename \_Traits, typename \_Alloc\> std::basic\_istream\< \_CharT, \_Traits \> & std::\_\_detail::operator\>\> (std::basic\_istream\< \_CharT, \_Traits \> & \_\_is, const \_Quoted\_string\< basic\_string\< \_CharT, \_Traits, \_Alloc \> &, \_CharT \> & \_\_str)

Extractor for delimited strings. The left and right delimiters can be different.

References **std::basic\_ios\< \_CharT, \_Traits \>::clear()**, **std::ios\_base::flags()**, **std::basic\_ios\< \_CharT, \_Traits \>::good()**, **std::ios\_base::setf()**, **std::ios\_base::skipws**, and **std::basic\_istream\< \_CharT, \_Traits \>::unget()**.

## Author

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