GCC Middle and Back End API Reference
bbitmap_operators< M > Struct Template Reference

#include <bbitmap.h>

Static Public Member Functions

template<typename Result , typename Operator , typename Arg , typename ... Rest>
static constexpr Result binary (Operator op, const Arg &x, const Arg &y, Rest ...rest)
 
template<typename Result , typename Arg , typename ... Rest>
static constexpr Result bit_not (const Arg &x, Rest ...rest)
 
template<typename Arg >
static constexpr bool non_zero (const Arg &x)
 
template<typename Arg >
static constexpr bool equal (const Arg &x, const Arg &y)
 
template<typename Result , typename ... Rest>
static constexpr Result from_index (int index, Rest ...rest)
 

Detailed Description

template<int M>
struct bbitmap_operators< M >
Functions to support fixed-length bitmaps.
   Copyright (C) 2024 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   
Implementation of bounded (fixed length) bitmaps.

This provides a drop-in replacement for bitmaps that have outgrown the
storage capacity of a single integer.

Sets are stored as a fixed length array of uint64_t elements.  The length of
this array is given as a template parameter.   
Use recusive templated functions to define constexpr operations.   

Member Function Documentation

◆ binary()

template<int M>
template<typename Result , typename Operator , typename Arg , typename ... Rest>
static constexpr Result bbitmap_operators< M >::binary ( Operator op,
const Arg & x,
const Arg & y,
Rest ... rest )
inlinestaticconstexpr

◆ bit_not()

template<int M>
template<typename Result , typename Arg , typename ... Rest>
static constexpr Result bbitmap_operators< M >::bit_not ( const Arg & x,
Rest ... rest )
inlinestaticconstexpr

◆ equal()

template<int M>
template<typename Arg >
static constexpr bool bbitmap_operators< M >::equal ( const Arg & x,
const Arg & y )
inlinestaticconstexpr

◆ from_index()

template<int M>
template<typename Result , typename ... Rest>
static constexpr Result bbitmap_operators< M >::from_index ( int index,
Rest ... rest )
inlinestaticconstexpr

◆ non_zero()

template<int M>
template<typename Arg >
static constexpr bool bbitmap_operators< M >::non_zero ( const Arg & x)
inlinestaticconstexpr

The documentation for this struct was generated from the following file: