| ========================= |
| Bitwise Utility Functions |
| ========================= |
| |
| .. include:: check.rst |
| |
| --------------- |
| Source Location |
| --------------- |
| |
| - The main source for bitwise utility functions is located at: |
| ``libc/src/stdbit``. |
| |
| - The source for internal helpers used to implement these is located at: |
| ``libc/src/__support/CPP/bit.h``. |
| |
| - The tests are located at: |
| ``libc/test/src/stdbit/``, ``libc/test/include/stdbit_test.cpp``, and |
| ``src/__support/CPP/bit_test.cpp``. |
| |
| --------------------- |
| Implementation Status |
| --------------------- |
| |
| Functions |
| ========= |
| |
| .. |
| Do not order these, they are as they appear in the standard. |
| |
| ============================ ========= |
| Function Name Available |
| ============================ ========= |
| stdc_leading_zeros_uc |check| |
| stdc_leading_zeros_us |check| |
| stdc_leading_zeros_ui |check| |
| stdc_leading_zeros_ul |check| |
| stdc_leading_zeros_ull |check| |
| stdc_leading_ones_uc |check| |
| stdc_leading_ones_us |check| |
| stdc_leading_ones_ui |check| |
| stdc_leading_ones_ul |check| |
| stdc_leading_ones_ull |check| |
| stdc_trailing_zeros_uc |check| |
| stdc_trailing_zeros_us |check| |
| stdc_trailing_zeros_ui |check| |
| stdc_trailing_zeros_ul |check| |
| stdc_trailing_zeros_ull |check| |
| stdc_trailing_ones_uc |check| |
| stdc_trailing_ones_us |check| |
| stdc_trailing_ones_ui |check| |
| stdc_trailing_ones_ul |check| |
| stdc_trailing_ones_ull |check| |
| stdc_first_leading_zero_uc |check| |
| stdc_first_leading_zero_us |check| |
| stdc_first_leading_zero_ui |check| |
| stdc_first_leading_zero_ul |check| |
| stdc_first_leading_zero_ull |check| |
| stdc_first_leading_one_uc |check| |
| stdc_first_leading_one_us |check| |
| stdc_first_leading_one_ui |check| |
| stdc_first_leading_one_ul |check| |
| stdc_first_leading_one_ull |check| |
| stdc_first_trailing_zero_uc |check| |
| stdc_first_trailing_zero_us |check| |
| stdc_first_trailing_zero_ui |check| |
| stdc_first_trailing_zero_ul |check| |
| stdc_first_trailing_zero_ull |check| |
| stdc_first_trailing_one_uc |check| |
| stdc_first_trailing_one_us |check| |
| stdc_first_trailing_one_ui |check| |
| stdc_first_trailing_one_ul |check| |
| stdc_first_trailing_one_ull |check| |
| stdc_count_zeros_uc |check| |
| stdc_count_zeros_us |check| |
| stdc_count_zeros_ui |check| |
| stdc_count_zeros_ul |check| |
| stdc_count_zeros_ull |check| |
| stdc_count_ones_uc |check| |
| stdc_count_ones_us |check| |
| stdc_count_ones_ui |check| |
| stdc_count_ones_ul |check| |
| stdc_count_ones_ull |check| |
| stdc_has_single_bit_uc |check| |
| stdc_has_single_bit_us |check| |
| stdc_has_single_bit_ui |check| |
| stdc_has_single_bit_ul |check| |
| stdc_has_single_bit_ull |check| |
| stdc_bit_width_uc |check| |
| stdc_bit_width_us |check| |
| stdc_bit_width_ui |check| |
| stdc_bit_width_ul |check| |
| stdc_bit_width_ull |check| |
| stdc_bit_floor_uc |check| |
| stdc_bit_floor_us |check| |
| stdc_bit_floor_ui |check| |
| stdc_bit_floor_ul |check| |
| stdc_bit_floor_ull |check| |
| stdc_bit_ceil_uc |check| |
| stdc_bit_ceil_us |check| |
| stdc_bit_ceil_ui |check| |
| stdc_bit_ceil_ul |check| |
| stdc_bit_ceil_ull |check| |
| ============================ ========= |
| |
| |
| Macros |
| ====== |
| |
| ========================= ========= |
| Macro Name Available |
| ========================= ========= |
| __STDC_VERSION_STDBIT_H__ |check| |
| __STDC_ENDIAN_LITTLE__ |check| |
| __STDC_ENDIAN_BIG__ |check| |
| __STDC_ENDIAN_NATIVE__ |check| |
| stdc_leading_zeros |check| |
| stdc_leading_ones |check| |
| stdc_trailing_zeros |check| |
| stdc_trailing_ones |check| |
| stdc_first_leading_zero |check| |
| stdc_first_leading_one |check| |
| stdc_first_trailing_zero |check| |
| stdc_first_trailing_one |check| |
| stdc_count_zeros |check| |
| stdc_count_ones |check| |
| stdc_has_single_bit |check| |
| stdc_bit_width |check| |
| stdc_bit_floor |check| |
| stdc_bit_ceil |check| |
| ========================= ========= |
| |
| Standards |
| ========= |
| stdbit.h was specified as part of C23 in section 7.18 "Bit and byte utilities." |