|
156 | 156 | template<class T, class U>
|
157 | 157 | concept Common = @\seebelow@;
|
158 | 158 |
|
159 |
| - // \ref{concept.integral}, Integral |
| 159 | + // \ref{concepts.integral}, Integral concepts |
160 | 160 | template<class T>
|
161 | 161 | concept Integral = @\seebelow@;
|
162 | 162 |
|
163 |
| - // \ref{concept.signed.int}, SignedIntegral |
164 | 163 | template<class T>
|
165 | 164 | concept SignedIntegral = @\seebelow@;
|
166 | 165 |
|
167 |
| - // \ref{concept.unsigned.int}, UnsignedIntegral |
168 | 166 | template<class T>
|
169 | 167 | concept UnsignedIntegral = @\seebelow@;
|
170 | 168 |
|
|
445 | 443 |
|
446 | 444 | \end{itemdescr}
|
447 | 445 |
|
448 |
| -\rSec2[concept.integral]{Concept \libconcept{Integral}} |
| 446 | +\rSec2[concepts.integral]{Integral concepts} |
449 | 447 |
|
450 | 448 | \indexlibrary{\idxcode{Integral}}%
|
| 449 | +\indexlibrary{\idxcode{SignedIntegral}}% |
| 450 | +\indexlibrary{\idxcode{UnsignedIntegral}}% |
451 | 451 | \begin{itemdecl}
|
452 | 452 | template<class T>
|
453 | 453 | concept Integral = is_integral_v<T>;
|
454 |
| -\end{itemdecl} |
455 | 454 |
|
456 |
| -\rSec2[concept.signed.int]{Concept \libconcept{SignedIntegral}} |
457 |
| - |
458 |
| -\indexlibrary{\idxcode{SignedIntegral}}% |
459 |
| -\begin{itemdecl} |
460 | 455 | template<class T>
|
461 | 456 | concept SignedIntegral = Integral<T> && is_signed_v<T>;
|
| 457 | + |
| 458 | +template<class T> |
| 459 | +concept UnsignedIntegral = Integral<T> && !SignedIntegral<T>; |
462 | 460 | \end{itemdecl}
|
463 | 461 |
|
464 | 462 | \begin{itemdescr}
|
|
467 | 465 | \tcode{\libconcept{SignedIntegral}<T>} can be satisfied even by types that are
|
468 | 466 | not signed integral types\iref{basic.fundamental}; for example, \tcode{char}.
|
469 | 467 | \end{note}
|
470 |
| -\end{itemdescr} |
471 |
| - |
472 |
| -\rSec2[concept.unsigned.int]{Concept \libconcept{UnsignedIntegral}} |
473 | 468 |
|
474 |
| -\indexlibrary{\idxcode{UnsignedIntegral}}% |
475 |
| -\begin{itemdecl} |
476 |
| -template<class T> |
477 |
| -concept UnsignedIntegral = Integral<T> && !SignedIntegral<T>; |
478 |
| -\end{itemdecl} |
479 |
| - |
480 |
| -\begin{itemdescr} |
481 | 469 | \pnum
|
482 | 470 | \begin{note}
|
483 | 471 | \tcode{\libconcept{UnsignedIntegral}<T>} can be satisfied even by types that are
|
484 |
| -not unsigned integral types\iref{basic.fundamental}; for example, \tcode{char}. |
| 472 | +not unsigned integral types\iref{basic.fundamental}; for example, \tcode{bool}. |
485 | 473 | \end{note}
|
486 | 474 | \end{itemdescr}
|
487 | 475 |
|
|
0 commit comments