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

# \_\_gnu\_pbds::detail::trie\_policy\_base(3cxx)

Base class for trie policies.

## NAME

\_\_gnu\_pbds::detail::trie\_policy\_base\< Node\_CItr, Node\_Itr, \_ATraits, \_Alloc \> - Base class for trie policies.

## SYNOPSIS

`#include <trie_policy_base.hpp>`

Inherits **\_\_gnu\_pbds::detail::branch\_policy\< Node\_CItr, Node\_Itr, \_Alloc \>**.

Inherited by **\_\_gnu\_pbds::trie\_order\_statistics\_node\_update\< Node\_CItr, Node\_Itr, \_ATraits, \_Alloc \>**` [private]`, and **\_\_gnu\_pbds::trie\_prefix\_search\_node\_update\< Node\_CItr, Node\_Itr, \_ATraits, \_Alloc \>**` [private]`.

### Public Types

typedef \_ATraits **access\_traits**\
 typedef \_Alloc **allocator\_type**\
 typedef node\_const\_iterator::value\_type **const\_iterator**\
 typedef node\_iterator::value\_type **iterator**\
 typedef base\_type::key\_const\_reference **key\_const\_reference**\
 typedef base\_type::key\_type **key\_type**\
 typedef **null\_type** **metadata\_type**\
 typedef Node\_CItr **node\_const\_iterator**\
 typedef Node\_Itr **node\_iterator**\
 typedef allocator\_type::size\_type **size\_type**\

### Protected Types

typedef rebind\_v::const\_pointer **const\_pointer**\
 typedef rebind\_v::const\_reference **const\_reference**\
 typedef Node\_Itr::value\_type **it\_type**\
 typedef remove\_const\< key\_type \>::type **rckey\_type**\
 typedef remove\_const\< value\_type \>::type **rcvalue\_type**\
 typedef **rebind\_traits**\< \_Alloc, rckey\_type \> **rebind\_k**\
 typedef **rebind\_traits**\< \_Alloc, rcvalue\_type \> **rebind\_v**\
 typedef rebind\_v::reference **reference**\
 typedef **std::iterator\_traits**\< it\_type \>::value\_type **value\_type**\

### Protected Member Functions

virtual const\_iterator **end** () const =0\
 virtual iterator **end** ()=0\
 it\_type **end\_iterator** () const\
 virtual const access\_traits & **get\_access\_traits** () const =0\
 virtual node\_const\_iterator **node\_begin** () const =0\
 virtual node\_iterator **node\_begin** ()=0\
 virtual node\_const\_iterator **node\_end** () const =0\
 virtual node\_iterator **node\_end** ()=0\

### Static Protected Member Functions

static size\_type **common\_prefix\_len** (node\_iterator, e\_const\_iterator, e\_const\_iterator, const access\_traits &)\
 static key\_const\_reference **extract\_key** (const\_reference r\_val)\
 static iterator **leftmost\_it** (node\_iterator)\
 static bool **less** (e\_const\_iterator, e\_const\_iterator, e\_const\_iterator, e\_const\_iterator, const access\_traits &)\
 static iterator **rightmost\_it** (node\_iterator)\

## Detailed Description

### template\<typename Node\_CItr, typename Node\_Itr, typename \_ATraits, typename \_Alloc\>

class \_\_gnu\_pbds::detail::trie\_policy\_base\< Node\_CItr, Node\_Itr, \_ATraits, \_Alloc \>"Base class for trie policies.

## Member Function Documentation

### template\<typename Node\_CItr , typename Node\_Itr , typename \_ATraits , typename \_Alloc \> virtual iterator \_\_gnu\_pbds::detail::trie\_policy\_base\< Node\_CItr, Node\_Itr, \_ATraits, \_Alloc \>::end ()` [protected]`, ` [pure virtual]`

Implements **\_\_gnu\_pbds::detail::branch\_policy\< Node\_CItr, Node\_Itr, \_Alloc \>**.

## Author

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