template class axl::sl::BitMapN

#include <axl_sl_BitMap.h>

template <size_t bitCount>
class BitMapN
{
public:
    // enums

    enum
    {
        pageCount = bitCount / AXL_PTR_BITS + bitCount % AXL_PTR_BITS ? 1 : 0,
    };

    // construction

    BitMapN();

    // methods

    void
    clear();

    void
    copy(const BitMapN& src);

    size_t
    hash() const;

    int
    cmp(const BitMapN& src) const;

    const size_t*
    getMap() const;

    size_t*
    getMap();

    size_t
    getPageCount() const;

    bool
    getBit(size_t bit) const;

    bool
    setBit(
        size_t bit,
        bool value = true
        );

    bool
    setBitRange(
        size_t from,
        size_t to,
        bool value = true
        );

    bool
    merge(
        const BitMapN& bitMap2,
        BitOpKind op
        );

    void
    inverse();

    size_t
    findBit(
        size_t start,
        bool value = true
        ) const;
};