Cuts a bit sequence from a number.
More...
#include <cds/algo/split_bitstring.h>
|
|
| number_splitter (int_type n) |
| | Initalizes the splitter with nymber n and initial bit offset 0.
|
| |
|
| number_splitter (int_type n, size_t initial_offset) |
| | Initalizes the splitter with nymber n and initial bit offset initial_offset.
|
| |
|
| operator bool () const |
| | Returns true if end-of-string is not reached yet.
|
| |
|
bool | eos () const |
| | Returns true if end-of-stream encountered.
|
| |
| int_type | cut (unsigned count) |
| | Cuts next count bits (must be multiplier of 8) from the number. More...
|
| |
| int_type | safe_cut (unsigned count) |
| | Cuts up to count from the bit-string. More...
|
| |
|
void | reset () noexcept |
| | Resets the splitter.
|
| |
|
int_type | source () const |
| | Returns initial number.
|
| |
|
size_t | bit_offset () const |
| | Returns current bit offset from beginning of the number.
|
| |
|
size_t | rest_count () const |
| | Returns how many bits remain.
|
| |
|
|
static constexpr bool | is_correct (unsigned count) |
| | Checks if count is multiple of 8.
|
| |
template<typename Int>
class cds::algo::number_splitter< Int >
Cuts a bit sequence from a number.
The splitter can be used as an iterator over bit representation of the number of type Int. Each call of cut() or safe_cut() cuts the bit count specified and keeps the position inside the number for the next call.
◆ cut()
Cuts next count bits (must be multiplier of 8) from the number.
For performance reason, the function does not manage out-of-bound condition. To control that use safe_cut().
◆ safe_cut()
Cuts up to count from the bit-string.
Safe analog of cut(): if count is more than the rest of int_type, only the rest is returned. When eos() condition is met the function returns 0.
The documentation for this class was generated from the following file:
- cds/algo/split_bitstring.h