|
3458 | 3458 | \pnum
|
3459 | 3459 | \expects
|
3460 | 3460 | \tcode{Function} meets
|
3461 |
| -the \oldconcept{MoveConstructible} requirements (\tref{cpp17.moveconstructible}). |
| 3461 | +the \oldconcept{MoveConstructible} requirements\iref{cpp17.moveconstructible}. |
3462 | 3462 | \begin{note}
|
3463 | 3463 | \tcode{Function} need not meet the requirements of
|
3464 |
| -\oldconcept{CopyConstructible} (\tref{cpp17.copyconstructible}). |
| 3464 | +\oldconcept{CopyConstructible}\iref{cpp17.copyconstructible}. |
3465 | 3465 | \end{note}
|
3466 | 3466 |
|
3467 | 3467 | \pnum
|
|
5022 | 5022 | For the overload with an \tcode{ExecutionPolicy},
|
5023 | 5023 | there might be a performance cost
|
5024 | 5024 | if \tcode{iterator_traits<For\-ward\-It\-er\-ator1>::value_type}
|
5025 |
| -is not \oldconcept{\-Move\-Constructible} (\tref{cpp17.moveconstructible}). |
| 5025 | +is not \oldconcept{\-Move\-Constructible}\iref{cpp17.moveconstructible}. |
5026 | 5026 | \end{note}
|
5027 | 5027 |
|
5028 | 5028 | \pnum
|
|
5835 | 5835 | \expects
|
5836 | 5836 | For the algorithms in namespace \tcode{std},
|
5837 | 5837 | the type of \tcode{*first}
|
5838 |
| -meets the \oldconcept{MoveAssignable} requirements (\tref{cpp17.moveassignable}). |
| 5838 | +meets the \oldconcept{MoveAssignable} requirements\iref{cpp17.moveassignable}. |
5839 | 5839 |
|
5840 | 5840 | \pnum
|
5841 | 5841 | \effects
|
|
5945 | 5945 | For the overloads with an \tcode{ExecutionPolicy},
|
5946 | 5946 | there might be a performance cost
|
5947 | 5947 | if \tcode{iterator_traits<ForwardIterator1>::value_type} does not meet
|
5948 |
| -the \oldconcept{\-Move\-Constructible} (\tref{cpp17.moveconstructible}) requirements. |
| 5948 | +the \oldconcept{\-Move\-Constructible}\iref{cpp17.moveconstructible} requirements. |
5949 | 5949 | \end{note}
|
5950 | 5950 |
|
5951 | 5951 | \pnum
|
|
6018 | 6018 | For the overloads in namespace \tcode{std},
|
6019 | 6019 | \tcode{pred} is an equivalence relation and
|
6020 | 6020 | the type of \tcode{*first} meets
|
6021 |
| -the \oldconcept{MoveAssignable} requirements (\tref{cpp17.moveassignable}). |
| 6021 | +the \oldconcept{MoveAssignable} requirements\iref{cpp17.moveassignable}. |
6022 | 6022 |
|
6023 | 6023 | \pnum
|
6024 | 6024 | \effects
|
|
6124 | 6124 | the \oldconcept{ForwardIterator} requirements and
|
6125 | 6125 | its value type is the same as \tcode{T},
|
6126 | 6126 | then \tcode{T} meets
|
6127 |
| - the \oldconcept{CopyAssignable} (\tref{cpp17.copyassignable}) requirements. |
| 6127 | + the \oldconcept{CopyAssignable}\iref{cpp17.copyassignable} requirements. |
6128 | 6128 | Otherwise, \tcode{T} meets both
|
6129 |
| - the \oldconcept{CopyConstructible} (\tref{cpp17.copyconstructible}) and |
| 6129 | + the \oldconcept{CopyConstructible}\iref{cpp17.copyconstructible} and |
6130 | 6130 | \oldconcept{CopyAssignable} requirements.
|
6131 | 6131 | \begin{note}
|
6132 | 6132 | For the overloads with an \tcode{ExecutionPolicy},
|
|
6274 | 6274 | \tcode{ForwardIterator} meets
|
6275 | 6275 | the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements}, and
|
6276 | 6276 | the type of \tcode{*first} meets
|
6277 |
| -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
6278 |
| -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 6277 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 6278 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
6279 | 6279 |
|
6280 | 6280 | \pnum
|
6281 | 6281 | \effects
|
|
6666 | 6666 | For algorithms other than those described in~\ref{alg.binary.search},
|
6667 | 6667 | \tcode{comp} shall induce a strict weak ordering on the values.
|
6668 | 6668 |
|
| 6669 | +\indextext{strict weak order} |
6669 | 6670 | \pnum
|
6670 | 6671 | The term \term{strict} refers to the requirement
|
6671 | 6672 | of an irreflexive relation (\tcode{!comp(x, x)} for all \tcode{x}),
|
|
6772 | 6773 | \tcode{RandomAccessIterator} meets
|
6773 | 6774 | the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements} and
|
6774 | 6775 | the type of \tcode{*first} meets
|
6775 |
| -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
6776 |
| -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 6776 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 6777 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
6777 | 6778 |
|
6778 | 6779 | \pnum
|
6779 | 6780 | \effects
|
|
6830 | 6831 | \tcode{RandomAccessIterator} meets
|
6831 | 6832 | the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements} and
|
6832 | 6833 | the type of \tcode{*first} meets
|
6833 |
| -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
6834 |
| -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 6834 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 6835 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
6835 | 6836 |
|
6836 | 6837 | \pnum
|
6837 | 6838 | \effects
|
|
6900 | 6901 | \tcode{RandomAccessIterator} meets
|
6901 | 6902 | the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements} and
|
6902 | 6903 | the type of \tcode{*first} meets
|
6903 |
| -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
6904 |
| -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 6904 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 6905 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
6905 | 6906 |
|
6906 | 6907 | \pnum
|
6907 | 6908 | \effects
|
|
7008 | 7009 | \tcode{RandomAccessIterator} meets
|
7009 | 7010 | the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements},
|
7010 | 7011 | the type of \tcode{*result_first} meets
|
7011 |
| -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
7012 |
| -\oldconcept{\-Move\-Assignable} (\tref{cpp17.moveassignable}) requirements. |
| 7012 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 7013 | +\oldconcept{\-Move\-Assignable}\iref{cpp17.moveassignable} requirements. |
7013 | 7014 |
|
7014 | 7015 | \pnum
|
7015 | 7016 | For iterators \tcode{a1} and \tcode{b1} in \range{first}{last}, and
|
|
7213 | 7214 | \tcode{RandomAccessIterator} meets
|
7214 | 7215 | the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements}, and
|
7215 | 7216 | the type of \tcode{*first} meets
|
7216 |
| -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
7217 |
| -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 7217 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 7218 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
7218 | 7219 |
|
7219 | 7220 | \pnum
|
7220 | 7221 | \effects
|
|
7634 | 7635 | \tcode{BidirectionalIterator} meets
|
7635 | 7636 | the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements} and
|
7636 | 7637 | the type of \tcode{*first} meets
|
7637 |
| -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
7638 |
| -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 7638 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 7639 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
7639 | 7640 |
|
7640 | 7641 | \pnum
|
7641 | 7642 | \effects
|
|
7925 | 7926 | \tcode{BidirectionalIterator} meets
|
7926 | 7927 | the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements} and
|
7927 | 7928 | the type of \tcode{*first} meets
|
7928 |
| -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
7929 |
| -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 7929 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 7930 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
7930 | 7931 |
|
7931 | 7932 | \pnum
|
7932 | 7933 | \effects
|
|
8495 | 8496 | \tcode{RandomAccessIterator} meets
|
8496 | 8497 | the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements} and
|
8497 | 8498 | the type of \tcode{*first} meets
|
8498 |
| -the \oldconcept{MoveConstructible} requirements (\tref{cpp17.moveconstructible}) and |
8499 |
| -the \oldconcept{MoveAssignable} requirements (\tref{cpp17.moveassignable}). |
| 8499 | +the \oldconcept{MoveConstructible} requirements\iref{cpp17.moveconstructible} and |
| 8500 | +the \oldconcept{MoveAssignable} requirements\iref{cpp17.moveassignable}. |
8500 | 8501 |
|
8501 | 8502 | \pnum
|
8502 | 8503 | \effects
|
|
8548 | 8549 | \tcode{RandomAccessIterator} meets
|
8549 | 8550 | the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements} and
|
8550 | 8551 | the type of \tcode{*first} meets
|
8551 |
| -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
8552 |
| -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 8552 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 8553 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
8553 | 8554 |
|
8554 | 8555 | \pnum
|
8555 | 8556 | \effects
|
|
8604 | 8605 | \tcode{RandomAccessIterator} meets
|
8605 | 8606 | the \oldconcept{ValueSwap\-pable} requirements\iref{swappable.requirements} and
|
8606 | 8607 | the type of \tcode{*first} meets
|
8607 |
| -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
8608 |
| -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 8608 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 8609 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
8609 | 8610 |
|
8610 | 8611 | \pnum
|
8611 | 8612 | \effects
|
|
8657 | 8658 | \tcode{RandomAccessIterator} meets
|
8658 | 8659 | the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements} and
|
8659 | 8660 | the type of \tcode{*first} meets
|
8660 |
| -the \oldconcept{MoveConst\-ruct\-ible} (\tref{cpp17.moveconstructible}) and |
8661 |
| -\oldconcept{Move\-Assign\-able} (\tref{cpp17.moveassignable}) requirements. |
| 8661 | +the \oldconcept{MoveConst\-ruct\-ible}\iref{cpp17.moveconstructible} and |
| 8662 | +\oldconcept{Move\-Assign\-able}\iref{cpp17.moveassignable} requirements. |
8662 | 8663 |
|
8663 | 8664 | \pnum
|
8664 | 8665 | \effects
|
|
8817 | 8818 | \pnum
|
8818 | 8819 | \expects
|
8819 | 8820 | For the first form, \tcode{T} meets the
|
8820 |
| -\oldconcept{LessThanComparable} requirements (\tref{cpp17.lessthancomparable}). |
| 8821 | +\oldconcept{LessThanComparable} requirements\iref{cpp17.lessthancomparable}. |
8821 | 8822 |
|
8822 | 8823 | \pnum
|
8823 | 8824 | \returns
|
|
8859 | 8860 | For the overloads in namespace \tcode{std},
|
8860 | 8861 | \tcode{T} meets the \oldconcept{\-Copy\-Constructible} requirements.
|
8861 | 8862 | For the first form, \tcode{T} meets the \oldconcept{LessThanComparable}
|
8862 |
| -requirements (\tref{cpp17.lessthancomparable}). |
| 8863 | +requirements\iref{cpp17.lessthancomparable}. |
8863 | 8864 |
|
8864 | 8865 | \pnum
|
8865 | 8866 | \returns
|
|
8895 | 8896 | \pnum
|
8896 | 8897 | \expects
|
8897 | 8898 | For the first form, \tcode{T} meets the
|
8898 |
| -\oldconcept{LessThanComparable} requirements (\tref{cpp17.lessthancomparable}). |
| 8899 | +\oldconcept{LessThanComparable} requirements\iref{cpp17.lessthancomparable}. |
8899 | 8900 |
|
8900 | 8901 | \pnum
|
8901 | 8902 | \returns
|
|
8937 | 8938 | For the overloads in namespace \tcode{std},
|
8938 | 8939 | \tcode{T} meets the \oldconcept{\-Copy\-Constructible} requirements.
|
8939 | 8940 | For the first form, \tcode{T} meets the \oldconcept{LessThanComparable}
|
8940 |
| -requirements (\tref{cpp17.lessthancomparable}). |
| 8941 | +requirements\iref{cpp17.lessthancomparable}. |
8941 | 8942 |
|
8942 | 8943 | \pnum
|
8943 | 8944 | \returns
|
|
8975 | 8976 | \pnum
|
8976 | 8977 | \expects
|
8977 | 8978 | For the first form, \tcode{T} meets the
|
8978 |
| -\oldconcept{LessThanComparable} requirements (\tref{cpp17.lessthancomparable}). |
| 8979 | +\oldconcept{LessThanComparable} requirements\iref{cpp17.lessthancomparable}. |
8979 | 8980 |
|
8980 | 8981 | \pnum
|
8981 | 8982 | \returns
|
|
9018 | 9019 | For the overloads in namespace \tcode{std},
|
9019 | 9020 | \tcode{T} meets the \oldconcept{\-Copy\-Constructible} requirements.
|
9020 | 9021 | For the first form, type \tcode{T} meets the \oldconcept{LessThanComparable}
|
9021 |
| -requirements (\tref{cpp17.lessthancomparable}). |
| 9022 | +requirements\iref{cpp17.lessthancomparable}. |
9022 | 9023 |
|
9023 | 9024 | \pnum
|
9024 | 9025 | \returns
|
|
9210 | 9211 | \tcode{bool(invoke(comp, invoke(proj, hi), invoke(proj, lo)))} is \tcode{false}.
|
9211 | 9212 | For the first form, type \tcode{T}
|
9212 | 9213 | meets the \oldconcept{LessThan\-Comparable}
|
9213 |
| -requirements (\tref{cpp17.lessthancomparable}). |
| 9214 | +requirements\iref{cpp17.lessthancomparable}. |
9214 | 9215 |
|
9215 | 9216 | \pnum
|
9216 | 9217 | \returns
|
|
9775 | 9776 | \pnum
|
9776 | 9777 | \expects
|
9777 | 9778 | \tcode{T} meets
|
9778 |
| -the \oldconcept{CopyConstructible} (\tref{cpp17.copyconstructible}) |
9779 |
| -and \oldconcept{CopyAssignable} (\tref{cpp17.copyassignable}) requirements. |
| 9779 | +the \oldconcept{CopyConstructible}\iref{cpp17.copyconstructible} |
| 9780 | +and \oldconcept{CopyAssignable}\iref{cpp17.copyassignable} requirements. |
9780 | 9781 | In the range \crange{first}{last},
|
9781 | 9782 | \tcode{binary_op} neither modifies elements
|
9782 | 9783 | nor invalidates iterators or subranges.
|
|
9898 | 9899 | \expects
|
9899 | 9900 | \begin{itemize}
|
9900 | 9901 | \item
|
9901 |
| - \tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements. |
| 9902 | + \tcode{T} meets the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} requirements. |
9902 | 9903 | \item
|
9903 | 9904 | \tcode{binary_op} neither invalidates iterators or subranges,
|
9904 | 9905 | nor modifies elements in the range \crange{first}{last}.
|
|
9942 | 9943 | \pnum
|
9943 | 9944 | \expects
|
9944 | 9945 | \tcode{T} meets
|
9945 |
| -the \oldconcept{CopyConstructible} (\tref{cpp17.copyconstructible}) |
9946 |
| -and \oldconcept{CopyAssignable} (\tref{cpp17.copyassignable}) requirements. |
| 9946 | +the \oldconcept{CopyConstructible}\iref{cpp17.copyconstructible} |
| 9947 | +and \oldconcept{CopyAssignable}\iref{cpp17.copyassignable} requirements. |
9947 | 9948 | In the ranges \crange{first1}{last1} and
|
9948 | 9949 | \crange{first2}{first2 + (last1 - first1)}
|
9949 | 9950 | \tcode{binary_op1} and \tcode{binary_op2}
|
|
10038 | 10039 | \expects
|
10039 | 10040 | \begin{itemize}
|
10040 | 10041 | \item
|
10041 |
| - \tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements. |
| 10042 | + \tcode{T} meets the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} requirements. |
10042 | 10043 | \item
|
10043 | 10044 | Neither \tcode{binary_op1} nor \tcode{binary_op2}
|
10044 | 10045 | invalidates subranges, nor modifies elements in the ranges
|
|
10088 | 10089 | \expects
|
10089 | 10090 | \begin{itemize}
|
10090 | 10091 | \item
|
10091 |
| - \tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements. |
| 10092 | + \tcode{T} meets the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} requirements. |
10092 | 10093 | \item
|
10093 | 10094 | Neither \tcode{unary_op} nor \tcode{binary_op} invalidates subranges,
|
10094 | 10095 | nor modifies elements in the range \crange{first}{last}.
|
|
10237 | 10238 | \expects
|
10238 | 10239 | \begin{itemize}
|
10239 | 10240 | \item
|
10240 |
| - \tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements. |
| 10241 | + \tcode{T} meets the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} requirements. |
10241 | 10242 | \item
|
10242 | 10243 | \tcode{binary_op} neither invalidates iterators or subranges,
|
10243 | 10244 | nor modifies elements in
|
|
10358 | 10359 | \begin{itemize}
|
10359 | 10360 | \item
|
10360 | 10361 | If \tcode{init} is provided,
|
10361 |
| - \tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements; |
| 10362 | + \tcode{T} meets the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} requirements; |
10362 | 10363 | otherwise, \tcode{U}
|
10363 | 10364 | meets the \oldconcept{MoveConstructible} requirements.
|
10364 | 10365 | \item
|
|
10437 | 10438 | \expects
|
10438 | 10439 | \begin{itemize}
|
10439 | 10440 | \item
|
10440 |
| - \tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements. |
| 10441 | + \tcode{T} meets the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} requirements. |
10441 | 10442 | \item
|
10442 | 10443 | Neither \tcode{unary_op} nor \tcode{binary_op}
|
10443 | 10444 | invalidates iterators or subranges, nor modifies elements in
|
|
10536 | 10537 | \begin{itemize}
|
10537 | 10538 | \item
|
10538 | 10539 | If \tcode{init} is provided, \tcode{T} meets the
|
10539 |
| - \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements; |
| 10540 | + \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} requirements; |
10540 | 10541 | otherwise, \tcode{U} meets the
|
10541 | 10542 | \oldconcept{MoveConstructible} requirements.
|
10542 | 10543 | \item
|
|
10637 | 10638 | \begin{itemize}
|
10638 | 10639 | \item
|
10639 | 10640 | For the overloads with no \tcode{ExecutionPolicy},
|
10640 |
| - \tcode{T} meets the \oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) |
| 10641 | + \tcode{T} meets the \oldconcept{MoveAssignable}\iref{cpp17.moveassignable} |
10641 | 10642 | requirements.
|
10642 | 10643 | \item
|
10643 | 10644 | For all overloads, in the ranges \crange{first}{last}
|
|
0 commit comments