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

# std::\_\_detail(3cxx)

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

**using** **\_\_bare\_timed\_wait** = \_\_timed\_waiter\< **std::false\_type** \>\
 **using** **\_\_bare\_wait** = \_\_waiter\< **std::false\_type** \>\
 template\<**typename** **\_Cat** , **typename** **\_Limit** , **typename** **\_Otherwise**  = \_Cat\> **using** **\_\_clamp\_iter\_cat** = \_\_conditional\_t\< derived\_from\< **\_Cat**, **\_Limit** \>, **\_Limit**, **\_Otherwise** \>\
 template\<**typename** \_Tp , **typename** \_Up \> **using** **\_\_cmp3way\_res\_t** = **decltype**(**std::declval**\< \_Tp \>()\<=\> **std::declval**\< \_Up \>())\
 template\<**typename** \_Tp \> **using** **\_\_cref** = const **remove\_reference\_t**\< \_Tp \> &\
 **using** **\_\_enters\_timed\_wait** = \_\_timed\_waiter\< **std::true\_type** \>\
 **using** **\_\_enters\_wait** = \_\_waiter\< **std::true\_type** \>\
 template\<**typename** \_Tp \> **using** **\_\_integer\_from\_chars\_result\_type** = **enable\_if\_t**\< \_\_or\_\< **\_\_is\_signed\_integer**\< \_Tp \>, **\_\_is\_unsigned\_integer**\< \_Tp \>, **is\_same**\< char, **remove\_cv\_t**\< \_Tp \> \> \>::value, **from\_chars\_result** \>\
 template\<**typename** \_Tp \> **using** **\_\_integer\_to\_chars\_result\_type** = **enable\_if\_t**\< \_\_or\_\< **\_\_is\_signed\_integer**\< \_Tp \>, **\_\_is\_unsigned\_integer**\< \_Tp \>, **is\_same**\< char, **remove\_cv\_t**\< \_Tp \> \> \>::value, **to\_chars\_result** \>\
 template\<**typename** \_Iter \> **using** **\_\_iter\_concept** = **typename** \_\_iter\_concept\_impl\< \_Iter \>::type\
 template\<**typename** \_Tp \> **using** **\_\_iter\_diff\_t** = **typename** \_\_iter\_traits\< \_Tp, incrementable\_traits\< \_Tp \> \>::difference\_type\
 template\<**typename** \_Iter , **typename** \_Tp  = \_Iter\> **using** **\_\_iter\_traits** = **typename** \_\_iter\_traits\_impl\< \_Iter, \_Tp \>::type\
 template\<**typename** \_Tp \> **using** **\_\_iter\_value\_t** = **typename** \_\_iter\_traits\< \_Tp, indirectly\_readable\_traits\< \_Tp \> \>::value\_type\
 **using** **\_\_platform\_wait\_t** = uint64\_t\
 template\<**typename** \_Tp \> **using** **\_\_range\_iter\_t** = **decltype**(ranges::\_\_cust\_access::\_\_begin(**std::declval**\< \_Tp & \>()))\
 template\<**typename** \_Tp , **typename** \_Up  = \_Tp\> **using** **\_\_synth3way\_t** = **decltype**(\_\_detail::\_\_synth3way(**std::declval**\< \_Tp & \>(), **std::declval**\< \_Up & \>()))\
 template\<**typename** \_Tp \> **using** **\_\_unsigned\_least\_t** = **typename** \_\_to\_chars\_unsigned\_type\< \_Tp \>::type\
 **using** **\_\_wait\_clock\_t** = **chrono::steady\_clock**\
 template\<**typename** \_Tp \> **using** **\_\_with\_ref** = \_Tp &\
 template\<**typename** \_CharT \> **using** **\_Matcher** = std::function\< bool(\_CharT)\>\
 **typedef** long **\_StateIdT**\

### Enumerations

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** \_Tp \> bool **\_\_atomic\_compare** (const \_Tp &\_\_a, const \_Tp &\_\_b)\
 template\<**typename** **\_Pred** , **typename** **\_Spin**  = \_\_default\_spin\_policy\> bool **\_\_atomic\_spin** (**\_Pred** &**\_\_pred**, **\_Spin** **\_\_spin**=**\_Spin**{ }) noexcept\
 template\<typename... \_Ts\> constexpr **auto** **\_\_common\_cmp\_cat** ()\
 template\<**typename** **\_Clock** , **typename** \_Dur \> bool **\_\_cond\_wait\_until** (\_\_condvar &**\_\_cv**, **mutex** &**\_\_mx**, const **chrono::time\_point**\< **\_Clock**, \_Dur \> &**\_\_atime**)\
 template\<**typename** **\_Clock** , **typename** \_Dur \> bool **\_\_cond\_wait\_until\_impl** (\_\_condvar &**\_\_cv**, **mutex** &**\_\_mx**, const **chrono::time\_point**\< **\_Clock**, \_Dur \> &**\_\_atime**)\
 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 \> 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\> unsigned char **\_\_from\_chars\_alnum\_to\_val** (unsigned char \_\_c)\
 constexpr **auto** **\_\_from\_chars\_alnum\_to\_val\_table** ()\
 template\<bool \_DecOnly, **typename** \_Tp \> 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 \> constexpr bool **\_\_p1\_representable\_as\_double** (\_Tp \_\_x) noexcept\
 template\<**typename** \_Tp \> 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**)\
 **void** **\_\_thread\_relax** () noexcept\
 **void** **\_\_thread\_yield** () noexcept\
 template\<**typename** \_Tp \> **to\_chars\_result** **\_\_to\_chars** (char \*\_\_first, char \*\_\_last, \_Tp \_\_val, int \_\_base) noexcept\
 template\<**typename** \_Tp \> \_\_integer\_to\_chars\_result\_type\< \_Tp \> **\_\_to\_chars\_10** (char \*\_\_first, char \*\_\_last, \_Tp \_\_val) noexcept\
 template\<**typename** \_Tp \> **void** **\_\_to\_chars\_10\_impl** (char \*\_\_first, unsigned **\_\_len**, \_Tp \_\_val) noexcept\
 template\<**typename** \_Tp \> \_\_integer\_to\_chars\_result\_type\< \_Tp \> **\_\_to\_chars\_16** (char \*\_\_first, char \*\_\_last, \_Tp \_\_val) noexcept\
 template\<**typename** \_Tp \> \_\_integer\_to\_chars\_result\_type\< \_Tp \> **\_\_to\_chars\_2** (char \*\_\_first, char \*\_\_last, \_Tp \_\_val) noexcept\
 template\<**typename** \_Tp \> \_\_integer\_to\_chars\_result\_type\< \_Tp \> **\_\_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** \_Dur \> **\_\_wait\_clock\_t::time\_point** **\_\_to\_wait\_clock** (const **chrono::time\_point**\< **\_\_wait\_clock\_t**, \_Dur \> &**\_\_atime**) noexcept\
 template\<**typename** **\_Clock** , **typename** \_Dur \> **\_\_wait\_clock\_t::time\_point** **\_\_to\_wait\_clock** (const **chrono::time\_point**\< **\_Clock**, \_Dur \> &**\_\_atime**) noexcept\
 template\<**typename** \_Tp \> constexpr bool **\_Power\_of\_2** (\_Tp \_\_x)\
 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

constexpr **auto** **\_\_atomic\_spin\_count**\
 constexpr **auto** **\_\_atomic\_spin\_count\_relax**\
 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 **\_\_is\_span**\
 template\<**typename** \_Tp , size\_t \_Num\> constexpr bool **\_\_is\_span\< span\< \_Tp, \_Num \> \>**\
 template\<**typename** \_Tp \> constexpr bool **\_\_is\_std\_array**\
 constexpr size\_t **\_\_platform\_wait\_alignment**\
 constexpr **struct** std::\_\_detail::\_Synth3way **\_\_synth3way**\
 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)

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, typename \_Tp \> bool std::\_\_detail::\_\_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 \_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::ios\_base::skipws**.

## Author

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