@@ -15474,3 +15474,131 @@
15474
15474
Otherwise, \tcode {endian::native} is not equal
15475
15475
to either \tcode {endian::big} or \tcode {endian::little}.
15476
15476
\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