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

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

Implementation details not part of the namespace \_\_gnu\_cxx interface.

## NAME

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

## SYNOPSIS

### Classes

class **\_\_mini\_vector**\
 \_\_mini\_vector\<\> is a stripped down version of the full-fledged std::vector\<\>.  class **\_Bitmap\_counter**\
 The bitmap counter which acts as the bitmap manipulator, and manages the bit-manipulation functions and the searching and identification functions on the bit-map.  class **\_Ffit\_finder**\
 The class which acts as a predicate for applying the first-fit memory allocation policy for the bitmap allocator.

### Enumerations

enum { **\_S\_max\_rope\_depth** }\
 enum { **bits\_per\_byte**, **bits\_per\_block** }\
 enum **\_Tag** { **\_S\_leaf**, **\_S\_concat**, **\_S\_substringfn**, **\_S\_function** }\

### Functions

void **\_\_bit\_allocate** (std::size\_t \*\_\_pbmap, std::size\_t \_\_pos)  throw ()\
 Mark a memory address as allocated by re-setting the corresponding bit in the bit-map.  void **\_\_bit\_free** (std::size\_t \*\_\_pbmap, std::size\_t \_\_pos)  throw ()\
 Mark a memory address as free by setting the corresponding bit in the bit-map.  template\<typename \_ForwardIterator, typename \_Tp, typename \_Compare\> \_ForwardIterator **\_\_lower\_bound** (\_ForwardIterator \_\_first, \_ForwardIterator \_\_last, const \_Tp &\_\_val, \_Compare \_\_comp)\
 template\<typename \_AddrPair\> std::size\_t **\_\_num\_bitmaps** (\_AddrPair \_\_ap)\
 The number of Bit-maps pointed to by the address pair passed to the function.  template\<typename \_AddrPair\> std::size\_t **\_\_num\_blocks** (\_AddrPair \_\_ap)\
 The number of Blocks pointed to by the address pair passed to the function.

## Detailed Description

Implementation details not part of the namespace \_\_gnu\_cxx interface.

## Function Documentation

### void \_\_gnu\_cxx::\_\_detail::\_\_bit\_allocate (std::size\_t \* \_\_pbmap, std::size\_t \_\_pos) \[inline\]

Mark a memory address as allocated by re-setting the corresponding bit in the bit-map.

Referenced by **\_\_gnu\_cxx::bitmap\_allocator\< \_Tp1 \>::\_M\_allocate\_single\_object()**.

### void \_\_gnu\_cxx::\_\_detail::\_\_bit\_free (std::size\_t \* \_\_pbmap, std::size\_t \_\_pos) \[inline\]

Mark a memory address as free by setting the corresponding bit in the bit-map.

Referenced by **\_\_gnu\_cxx::bitmap\_allocator\< \_Tp1 \>::\_M\_deallocate\_single\_object()**.

### template\<typename \_AddrPair\> std::size\_t \_\_gnu\_cxx::\_\_detail::\_\_num\_bitmaps (\_AddrPair \_\_ap) \[inline\]

The number of Bit-maps pointed to by the address pair passed to the function.

References **\_\_num\_blocks()**.

Referenced by **\_\_gnu\_cxx::bitmap\_allocator\< \_Tp1 \>::\_M\_allocate\_single\_object()**, and **\_\_gnu\_cxx::bitmap\_allocator\< \_Tp1 \>::\_M\_deallocate\_single\_object()**.

### template\<typename \_AddrPair\> std::size\_t \_\_gnu\_cxx::\_\_detail::\_\_num\_blocks (\_AddrPair \_\_ap) \[inline\]

The number of Blocks pointed to by the address pair passed to the function.

Referenced by **\_\_num\_bitmaps()**.

## Author

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