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

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

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\< \_Tp \>::\_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\< \_Tp \>::\_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\< \_Tp \>::\_M\_allocate\_single\_object()**, and **\_\_gnu\_cxx::bitmap\_allocator\< \_Tp \>::\_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.
