* @brief convenience layer over raw_bitsets (stores number of bits
* with the bitfield)
* @author Matthias Braun
- * @version $Id$
*/
#ifndef FIRM_ADT_BITSET_H
#define FIRM_ADT_BITSET_H
*/
static inline size_t bitset_next_clear(const bitset_t *bs, size_t pos)
{
- if (pos >= bs->size)
- return (size_t)-1;
return rbitset_next_max(bs->data, pos, bs->size, false);
}
*/
static inline size_t bitset_next_set(const bitset_t *bs, size_t pos)
{
- if (pos >= bs->size)
- return (size_t)-1;
return rbitset_next_max(bs->data, pos, bs->size, true);
}
* @param bitset The bitset.
* @param elm A size_t variable.
*/
-#define bitset_foreach(bitset,elm) \
- for(elm = bitset_next_set(bitset,0); elm != (size_t)-1; elm = bitset_next_set(bitset,elm+1))
+#define bitset_foreach(bitset, elm) \
+ for (size_t elm = 0; (elm = bitset_next_set((bitset), elm)) != (size_t)-1; ++elm)
-#define bitset_foreach_clear(bitset,elm) \
- for(elm = bitset_next_clear(bitset,0); elm != (size_t) -1; elm = bitset_next_clear(bitset,elm+1))
+#define bitset_foreach_clear(bitset, elm) \
+ for (size_t elm = 0; (elm = bitset_next_clear((bitset), elm)) != (size_t)-1; ++elm)
/**
* Count the bits set.