@@ -15474,3 +15474,131 @@
1547415474Otherwise, \tcode {endian::native} is not equal
1547515475to either \tcode {endian::big} or \tcode {endian::little}.
1547615476\end {itemdescr }
15477+
15478+ \rSec 1[stdbit.h.syn]{Header \tcode {<stdbit.h>} synopsis}
15479+
15480+ \begin {codeblock }
15481+ #define @\libglobal {__STDC_VERSION_STDBIT_H__}@ 202311L
15482+
15483+ #define @\libglobal {__STDC_ENDIAN_BIG__}@ @\seebelow@
15484+ #define @\libglobal {__STDC_ENDIAN_LITTLE__}@ @\seebelow@
15485+ #define @\libglobal {__STDC_ENDIAN_NATIVE__}@ @\seebelow@
15486+
15487+ unsigned int @\libglobal {stdc_leading_zeros_uc}@(unsigned char value);
15488+ unsigned int @\libglobal {stdc_leading_zeros_us}@(unsigned short value);
15489+ unsigned int @\libglobal {stdc_leading_zeros_ui}@(unsigned int value);
15490+ unsigned int @\libglobal {stdc_leading_zeros_ul}@(unsigned long int value);
15491+ unsigned int @\libglobal {stdc_leading_zeros_ull}@(unsigned long long int value);
15492+ template<class T> @\seebelow@ @\libglobal {stdc_leading_zeros}@(T value);
15493+
15494+ unsigned int @\libglobal {stdc_leading_ones_uc}@(unsigned char value);
15495+ unsigned int @\libglobal {stdc_leading_ones_us}@(unsigned short value);
15496+ unsigned int @\libglobal {stdc_leading_ones_ui}@(unsigned int value);
15497+ unsigned int @\libglobal {stdc_leading_ones_ul}@(unsigned long int value);
15498+ unsigned int @\libglobal {stdc_leading_ones_ull}@(unsigned long long int value);
15499+ template<class T> @\seebelow@ @\libglobal {stdc_leading_ones}@(T value);
15500+
15501+ unsigned int @\libglobal {stdc_trailing_zeros_uc}@(unsigned char value);
15502+ unsigned int @\libglobal {stdc_trailing_zeros_us}@(unsigned short value);
15503+ unsigned int @\libglobal {stdc_trailing_zeros_ui}@(unsigned int value);
15504+ unsigned int @\libglobal {stdc_trailing_zeros_ul}@(unsigned long int value);
15505+ unsigned int @\libglobal {stdc_trailing_zeros_ull}@(unsigned long long int value);
15506+ template<class T> @\seebelow@ @\libglobal {stdc_trailing_zeros}@(T value);
15507+
15508+ unsigned int @\libglobal {stdc_trailing_ones_uc}@(unsigned char value);
15509+ unsigned int @\libglobal {stdc_trailing_ones_us}@(unsigned short value);
15510+ unsigned int @\libglobal {stdc_trailing_ones_ui}@(unsigned int value);
15511+ unsigned int @\libglobal {stdc_trailing_ones_ul}@(unsigned long int value);
15512+ unsigned int @\libglobal {stdc_trailing_ones_ull}@(unsigned long long int value);
15513+ template<class T> @\seebelow@ @\libglobal {stdc_trailing_ones}@(T value);
15514+
15515+ unsigned int @\libglobal {stdc_first_leading_zero_uc}@(unsigned char value);
15516+ unsigned int @\libglobal {stdc_first_leading_zero_us}@(unsigned short value);
15517+ unsigned int @\libglobal {stdc_first_leading_zero_ui}@(unsigned int value);
15518+ unsigned int @\libglobal {stdc_first_leading_zero_ul}@(unsigned long int value);
15519+ unsigned int @\libglobal {stdc_first_leading_zero_ull}@(unsigned long long int value);
15520+ template<class T> @\seebelow@ @\libglobal {stdc_first_leading_zero}@(T value);
15521+
15522+ unsigned int @\libglobal {stdc_first_leading_one_uc}@(unsigned char value);
15523+ unsigned int @\libglobal {stdc_first_leading_one_us}@(unsigned short value);
15524+ unsigned int @\libglobal {stdc_first_leading_one_ui}@(unsigned int value);
15525+ unsigned int @\libglobal {stdc_first_leading_one_ul}@(unsigned long int value);
15526+ unsigned int @\libglobal {stdc_first_leading_one_ull}@(unsigned long long int value);
15527+ template<class T> @\seebelow@ stdc_first_leading_one(T value);
15528+
15529+ unsigned int @\libglobal {stdc_first_trailing_zero_uc}@(unsigned char value);
15530+ unsigned int @\libglobal {stdc_first_trailing_zero_us}@(unsigned short value);
15531+ unsigned int @\libglobal {stdc_first_trailing_zero_ui}@(unsigned int value);
15532+ unsigned int @\libglobal {stdc_first_trailing_zero_ul}@(unsigned long int value);
15533+ unsigned int @\libglobal {stdc_first_trailing_zero_ull}@(unsigned long long int value);
15534+ template<class T> @\seebelow@ stdc_first_trailing_zero(T value);
15535+
15536+ unsigned int @\libglobal {stdc_first_trailing_one_uc}@(unsigned char value);
15537+ unsigned int @\libglobal {stdc_first_trailing_one_us}@(unsigned short value);
15538+ unsigned int @\libglobal {stdc_first_trailing_one_ui}@(unsigned int value);
15539+ unsigned int @\libglobal {stdc_first_trailing_one_ul}@(unsigned long int value);
15540+ unsigned int @\libglobal {stdc_first_trailing_one_ull}@(unsigned long long int value);
15541+ template<class T> @\seebelow@ stdc_first_trailing_one(T value);
15542+
15543+ unsigned int @\libglobal {stdc_count_zeros_uc}@(unsigned char value);
15544+ unsigned int @\libglobal {stdc_count_zeros_us}@(unsigned short value);
15545+ unsigned int @\libglobal {stdc_count_zeros_ui}@(unsigned int value);
15546+ unsigned int @\libglobal {stdc_count_zeros_ul}@(unsigned long int value);
15547+ unsigned int @\libglobal {stdc_count_zeros_ull}@(unsigned long long int value);
15548+ template<class T> @\seebelow@ @\libglobal {stdc_count_zeros}@(T value);
15549+
15550+ unsigned int @\libglobal {stdc_count_ones_uc}@(unsigned char value);
15551+ unsigned int @\libglobal {stdc_count_ones_us}@(unsigned short value);
15552+ unsigned int @\libglobal {stdc_count_ones_ui}@(unsigned int value);
15553+ unsigned int @\libglobal {stdc_count_ones_ul}@(unsigned long int value);
15554+ unsigned int @\libglobal {stdc_count_ones_ull}@(unsigned long long int value);
15555+ template<class T> @\seebelow@ stdc_count_ones(T value);
15556+
15557+ bool @\libglobal {stdc_has_single_bit_uc}@(unsigned char value);
15558+ bool @\libglobal {stdc_has_single_bit_us}@(unsigned short value);
15559+ bool @\libglobal {stdc_has_single_bit_ui}@(unsigned int value);
15560+ bool @\libglobal {stdc_has_single_bit_ul}@(unsigned long int value);
15561+ bool @\libglobal {stdc_has_single_bit_ull}@(unsigned long long int value);
15562+ template<class T> bool @\libglobal {stdc_has_single_bit}@(T value);
15563+
15564+ unsigned int @\libglobal {stdc_bit_width_uc}@(unsigned char value);
15565+ unsigned int @\libglobal {stdc_bit_width_us}@(unsigned short value);
15566+ unsigned int @\libglobal {stdc_bit_width_ui}@(unsigned int value);
15567+ unsigned int @\libglobal {stdc_bit_width_ul}@(unsigned long int value);
15568+ unsigned int @\libglobal {stdc_bit_width_ull}@(unsigned long long int value);
15569+ template<class T> @\seebelow@ @\libglobal {stdc_bit_width}@(T value);
15570+
15571+ unsigned char @\libglobal {stdc_bit_floor_uc}@(unsigned char value);
15572+ unsigned short @\libglobal {stdc_bit_floor_us}@(unsigned short value);
15573+ unsigned int @\libglobal {stdc_bit_floor_ui}@(unsigned int value);
15574+ unsigned long int @\libglobal {stdc_bit_floor_ul}@(unsigned long int value);
15575+ unsigned long long int @\libglobal {stdc_bit_floor_ull}@(unsigned long long int value);
15576+ template<class T> T @\libglobal {stdc_bit_floor}@(T value);
15577+
15578+ unsigned char @\libglobal {stdc_bit_ceil_uc}@(unsigned char value);
15579+ unsigned short @\libglobal {stdc_bit_ceil_us}@(unsigned short value);
15580+ unsigned int @\libglobal {stdc_bit_ceil_ui}@(unsigned int value);
15581+ unsigned long int @\libglobal {stdc_bit_ceil_ul}@(unsigned long int value);
15582+ unsigned long long int @\libglobal {stdc_bit_ceil_ull}@(unsigned long long int value);
15583+ template<class T> T @\libglobal {stdc_bit_ceil}@(T value);
15584+ \end {codeblock }
15585+
15586+ \pnum
15587+ For a function template whose return type is not specified above,
15588+ the return type is
15589+ an \impldef {return types for \tcode {<stdbit.h>} functions} unsigned integer type
15590+ large enough to represent all possible result values.
15591+ Each function template has the same semantics
15592+ as the corresponding type-generic function with the same name
15593+ specified in \IsoCUndated {}:2024, 7.18. % % change to \xrefc{7.18}
15594+
15595+ \pnum
15596+ \mandates
15597+ \tcode {T} is an unsigned integer type.
15598+
15599+ \pnum
15600+ Otherwise,
15601+ the contents and meaning of the header \libheader {stdbit.h} are the same as
15602+ the C standard library header \tcode {<stdbit.h>}.
15603+
15604+ \xref {\IsoCUndated {}:2024, 7.18} % % TODO: change to \xrefc{7.18}
0 commit comments