|
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 |
|
5029 | 5029 | For the overload with an \tcode{ExecutionPolicy}, |
5030 | 5030 | there might be a performance cost |
5031 | 5031 | if \tcode{iterator_traits<For\-ward\-It\-er\-ator1>::value_type} |
5032 | | -is not \oldconcept{\-Move\-Constructible} (\tref{cpp17.moveconstructible}). |
| 5032 | +is not \oldconcept{\-Move\-Constructible}\iref{cpp17.moveconstructible}. |
5033 | 5033 | \end{note} |
5034 | 5034 |
|
5035 | 5035 | \pnum |
|
5840 | 5840 | \expects |
5841 | 5841 | For the algorithms in namespace \tcode{std}, |
5842 | 5842 | the type of \tcode{*first} |
5843 | | -meets the \oldconcept{MoveAssignable} requirements (\tref{cpp17.moveassignable}). |
| 5843 | +meets the \oldconcept{MoveAssignable} requirements\iref{cpp17.moveassignable}. |
5844 | 5844 |
|
5845 | 5845 | \pnum |
5846 | 5846 | \effects |
|
5950 | 5950 | For the overloads with an \tcode{ExecutionPolicy}, |
5951 | 5951 | there might be a performance cost |
5952 | 5952 | if \tcode{iterator_traits<ForwardIterator1>::value_type} does not meet |
5953 | | -the \oldconcept{\-Move\-Constructible} (\tref{cpp17.moveconstructible}) requirements. |
| 5953 | +the \oldconcept{\-Move\-Constructible}\iref{cpp17.moveconstructible} requirements. |
5954 | 5954 | \end{note} |
5955 | 5955 |
|
5956 | 5956 | \pnum |
|
6023 | 6023 | For the overloads in namespace \tcode{std}, |
6024 | 6024 | \tcode{pred} is an equivalence relation and |
6025 | 6025 | the type of \tcode{*first} meets |
6026 | | -the \oldconcept{MoveAssignable} requirements (\tref{cpp17.moveassignable}). |
| 6026 | +the \oldconcept{MoveAssignable} requirements\iref{cpp17.moveassignable}. |
6027 | 6027 |
|
6028 | 6028 | \pnum |
6029 | 6029 | \effects |
|
6129 | 6129 | the \oldconcept{ForwardIterator} requirements and |
6130 | 6130 | its value type is the same as \tcode{T}, |
6131 | 6131 | then \tcode{T} meets |
6132 | | - the \oldconcept{CopyAssignable} (\tref{cpp17.copyassignable}) requirements. |
| 6132 | + the \oldconcept{CopyAssignable}\iref{cpp17.copyassignable} requirements. |
6133 | 6133 | Otherwise, \tcode{T} meets both |
6134 | | - the \oldconcept{CopyConstructible} (\tref{cpp17.copyconstructible}) and |
| 6134 | + the \oldconcept{CopyConstructible}\iref{cpp17.copyconstructible} and |
6135 | 6135 | \oldconcept{CopyAssignable} requirements. |
6136 | 6136 | \begin{note} |
6137 | 6137 | For the overloads with an \tcode{ExecutionPolicy}, |
|
6279 | 6279 | \tcode{ForwardIterator} meets |
6280 | 6280 | the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements}, and |
6281 | 6281 | the type of \tcode{*first} meets |
6282 | | -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
6283 | | -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 6282 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 6283 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
6284 | 6284 |
|
6285 | 6285 | \pnum |
6286 | 6286 | \effects |
|
6671 | 6671 | For algorithms other than those described in~\ref{alg.binary.search}, |
6672 | 6672 | \tcode{comp} shall induce a strict weak ordering on the values. |
6673 | 6673 |
|
| 6674 | +\indextext{strict weak order} |
6674 | 6675 | \pnum |
6675 | 6676 | The term \term{strict} refers to the requirement |
6676 | 6677 | of an irreflexive relation (\tcode{!comp(x, x)} for all \tcode{x}), |
|
6777 | 6778 | \tcode{RandomAccessIterator} meets |
6778 | 6779 | the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements} and |
6779 | 6780 | the type of \tcode{*first} meets |
6780 | | -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
6781 | | -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 6781 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 6782 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
6782 | 6783 |
|
6783 | 6784 | \pnum |
6784 | 6785 | \effects |
|
6835 | 6836 | \tcode{RandomAccessIterator} meets |
6836 | 6837 | the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements} and |
6837 | 6838 | the type of \tcode{*first} meets |
6838 | | -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
6839 | | -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 6839 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 6840 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
6840 | 6841 |
|
6841 | 6842 | \pnum |
6842 | 6843 | \effects |
|
6905 | 6906 | \tcode{RandomAccessIterator} meets |
6906 | 6907 | the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements} and |
6907 | 6908 | the type of \tcode{*first} meets |
6908 | | -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
6909 | | -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 6909 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 6910 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
6910 | 6911 |
|
6911 | 6912 | \pnum |
6912 | 6913 | \effects |
|
7013 | 7014 | \tcode{RandomAccessIterator} meets |
7014 | 7015 | the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements}, |
7015 | 7016 | the type of \tcode{*result_first} meets |
7016 | | -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
7017 | | -\oldconcept{\-Move\-Assignable} (\tref{cpp17.moveassignable}) requirements. |
| 7017 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 7018 | +\oldconcept{\-Move\-Assignable}\iref{cpp17.moveassignable} requirements. |
7018 | 7019 |
|
7019 | 7020 | \pnum |
7020 | 7021 | For iterators \tcode{a1} and \tcode{b1} in \range{first}{last}, and |
|
7218 | 7219 | \tcode{RandomAccessIterator} meets |
7219 | 7220 | the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements}, and |
7220 | 7221 | the type of \tcode{*first} meets |
7221 | | -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
7222 | | -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 7222 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 7223 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
7223 | 7224 |
|
7224 | 7225 | \pnum |
7225 | 7226 | \effects |
|
7639 | 7640 | \tcode{BidirectionalIterator} meets |
7640 | 7641 | the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements} and |
7641 | 7642 | the type of \tcode{*first} meets |
7642 | | -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
7643 | | -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 7643 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 7644 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
7644 | 7645 |
|
7645 | 7646 | \pnum |
7646 | 7647 | \effects |
|
7930 | 7931 | \tcode{BidirectionalIterator} meets |
7931 | 7932 | the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements} and |
7932 | 7933 | the type of \tcode{*first} meets |
7933 | | -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
7934 | | -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 7934 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 7935 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
7935 | 7936 |
|
7936 | 7937 | \pnum |
7937 | 7938 | \effects |
|
8500 | 8501 | \tcode{RandomAccessIterator} meets |
8501 | 8502 | the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements} and |
8502 | 8503 | the type of \tcode{*first} meets |
8503 | | -the \oldconcept{MoveConstructible} requirements (\tref{cpp17.moveconstructible}) and |
8504 | | -the \oldconcept{MoveAssignable} requirements (\tref{cpp17.moveassignable}). |
| 8504 | +the \oldconcept{MoveConstructible} requirements\iref{cpp17.moveconstructible} and |
| 8505 | +the \oldconcept{MoveAssignable} requirements\iref{cpp17.moveassignable}. |
8505 | 8506 |
|
8506 | 8507 | \pnum |
8507 | 8508 | \effects |
|
8553 | 8554 | \tcode{RandomAccessIterator} meets |
8554 | 8555 | the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements} and |
8555 | 8556 | the type of \tcode{*first} meets |
8556 | | -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
8557 | | -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 8557 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 8558 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
8558 | 8559 |
|
8559 | 8560 | \pnum |
8560 | 8561 | \effects |
|
8609 | 8610 | \tcode{RandomAccessIterator} meets |
8610 | 8611 | the \oldconcept{ValueSwap\-pable} requirements\iref{swappable.requirements} and |
8611 | 8612 | the type of \tcode{*first} meets |
8612 | | -the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
8613 | | -\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
| 8613 | +the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} and |
| 8614 | +\oldconcept{MoveAssignable}\iref{cpp17.moveassignable} requirements. |
8614 | 8615 |
|
8615 | 8616 | \pnum |
8616 | 8617 | \effects |
|
8662 | 8663 | \tcode{RandomAccessIterator} meets |
8663 | 8664 | the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements} and |
8664 | 8665 | the type of \tcode{*first} meets |
8665 | | -the \oldconcept{MoveConst\-ruct\-ible} (\tref{cpp17.moveconstructible}) and |
8666 | | -\oldconcept{Move\-Assign\-able} (\tref{cpp17.moveassignable}) requirements. |
| 8666 | +the \oldconcept{MoveConst\-ruct\-ible}\iref{cpp17.moveconstructible} and |
| 8667 | +\oldconcept{Move\-Assign\-able}\iref{cpp17.moveassignable} requirements. |
8667 | 8668 |
|
8668 | 8669 | \pnum |
8669 | 8670 | \effects |
|
8822 | 8823 | \pnum |
8823 | 8824 | \expects |
8824 | 8825 | For the first form, \tcode{T} meets the |
8825 | | -\oldconcept{LessThanComparable} requirements (\tref{cpp17.lessthancomparable}). |
| 8826 | +\oldconcept{LessThanComparable} requirements\iref{cpp17.lessthancomparable}. |
8826 | 8827 |
|
8827 | 8828 | \pnum |
8828 | 8829 | \returns |
|
8864 | 8865 | For the overloads in namespace \tcode{std}, |
8865 | 8866 | \tcode{T} meets the \oldconcept{\-Copy\-Constructible} requirements. |
8866 | 8867 | For the first form, \tcode{T} meets the \oldconcept{LessThanComparable} |
8867 | | -requirements (\tref{cpp17.lessthancomparable}). |
| 8868 | +requirements\iref{cpp17.lessthancomparable}. |
8868 | 8869 |
|
8869 | 8870 | \pnum |
8870 | 8871 | \returns |
|
8900 | 8901 | \pnum |
8901 | 8902 | \expects |
8902 | 8903 | For the first form, \tcode{T} meets the |
8903 | | -\oldconcept{LessThanComparable} requirements (\tref{cpp17.lessthancomparable}). |
| 8904 | +\oldconcept{LessThanComparable} requirements\iref{cpp17.lessthancomparable}. |
8904 | 8905 |
|
8905 | 8906 | \pnum |
8906 | 8907 | \returns |
|
8942 | 8943 | For the overloads in namespace \tcode{std}, |
8943 | 8944 | \tcode{T} meets the \oldconcept{\-Copy\-Constructible} requirements. |
8944 | 8945 | For the first form, \tcode{T} meets the \oldconcept{LessThanComparable} |
8945 | | -requirements (\tref{cpp17.lessthancomparable}). |
| 8946 | +requirements\iref{cpp17.lessthancomparable}. |
8946 | 8947 |
|
8947 | 8948 | \pnum |
8948 | 8949 | \returns |
|
8980 | 8981 | \pnum |
8981 | 8982 | \expects |
8982 | 8983 | For the first form, \tcode{T} meets the |
8983 | | -\oldconcept{LessThanComparable} requirements (\tref{cpp17.lessthancomparable}). |
| 8984 | +\oldconcept{LessThanComparable} requirements\iref{cpp17.lessthancomparable}. |
8984 | 8985 |
|
8985 | 8986 | \pnum |
8986 | 8987 | \returns |
|
9023 | 9024 | For the overloads in namespace \tcode{std}, |
9024 | 9025 | \tcode{T} meets the \oldconcept{\-Copy\-Constructible} requirements. |
9025 | 9026 | For the first form, type \tcode{T} meets the \oldconcept{LessThanComparable} |
9026 | | -requirements (\tref{cpp17.lessthancomparable}). |
| 9027 | +requirements\iref{cpp17.lessthancomparable}. |
9027 | 9028 |
|
9028 | 9029 | \pnum |
9029 | 9030 | \returns |
|
9215 | 9216 | \tcode{bool(invoke(comp, invoke(proj, hi), invoke(proj, lo)))} is \tcode{false}. |
9216 | 9217 | For the first form, type \tcode{T} |
9217 | 9218 | meets the \oldconcept{LessThan\-Comparable} |
9218 | | -requirements (\tref{cpp17.lessthancomparable}). |
| 9219 | +requirements\iref{cpp17.lessthancomparable}. |
9219 | 9220 |
|
9220 | 9221 | \pnum |
9221 | 9222 | \returns |
|
9780 | 9781 | \pnum |
9781 | 9782 | \expects |
9782 | 9783 | \tcode{T} meets |
9783 | | -the \oldconcept{CopyConstructible} (\tref{cpp17.copyconstructible}) |
9784 | | -and \oldconcept{CopyAssignable} (\tref{cpp17.copyassignable}) requirements. |
| 9784 | +the \oldconcept{CopyConstructible}\iref{cpp17.copyconstructible} |
| 9785 | +and \oldconcept{CopyAssignable}\iref{cpp17.copyassignable} requirements. |
9785 | 9786 | In the range \crange{first}{last}, |
9786 | 9787 | \tcode{binary_op} neither modifies elements |
9787 | 9788 | nor invalidates iterators or subranges. |
|
9903 | 9904 | \expects |
9904 | 9905 | \begin{itemize} |
9905 | 9906 | \item |
9906 | | - \tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements. |
| 9907 | + \tcode{T} meets the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} requirements. |
9907 | 9908 | \item |
9908 | 9909 | \tcode{binary_op} neither invalidates iterators or subranges, |
9909 | 9910 | nor modifies elements in the range \crange{first}{last}. |
|
9947 | 9948 | \pnum |
9948 | 9949 | \expects |
9949 | 9950 | \tcode{T} meets |
9950 | | -the \oldconcept{CopyConstructible} (\tref{cpp17.copyconstructible}) |
9951 | | -and \oldconcept{CopyAssignable} (\tref{cpp17.copyassignable}) requirements. |
| 9951 | +the \oldconcept{CopyConstructible}\iref{cpp17.copyconstructible} |
| 9952 | +and \oldconcept{CopyAssignable}\iref{cpp17.copyassignable} requirements. |
9952 | 9953 | In the ranges \crange{first1}{last1} and |
9953 | 9954 | \crange{first2}{first2 + (last1 - first1)} |
9954 | 9955 | \tcode{binary_op1} and \tcode{binary_op2} |
|
10043 | 10044 | \expects |
10044 | 10045 | \begin{itemize} |
10045 | 10046 | \item |
10046 | | - \tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements. |
| 10047 | + \tcode{T} meets the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} requirements. |
10047 | 10048 | \item |
10048 | 10049 | Neither \tcode{binary_op1} nor \tcode{binary_op2} |
10049 | 10050 | invalidates subranges, nor modifies elements in the ranges |
|
10093 | 10094 | \expects |
10094 | 10095 | \begin{itemize} |
10095 | 10096 | \item |
10096 | | - \tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements. |
| 10097 | + \tcode{T} meets the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} requirements. |
10097 | 10098 | \item |
10098 | 10099 | Neither \tcode{unary_op} nor \tcode{binary_op} invalidates subranges, |
10099 | 10100 | nor modifies elements in the range \crange{first}{last}. |
|
10242 | 10243 | \expects |
10243 | 10244 | \begin{itemize} |
10244 | 10245 | \item |
10245 | | - \tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements. |
| 10246 | + \tcode{T} meets the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} requirements. |
10246 | 10247 | \item |
10247 | 10248 | \tcode{binary_op} neither invalidates iterators or subranges, |
10248 | 10249 | nor modifies elements in |
|
10363 | 10364 | \begin{itemize} |
10364 | 10365 | \item |
10365 | 10366 | If \tcode{init} is provided, |
10366 | | - \tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements; |
| 10367 | + \tcode{T} meets the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} requirements; |
10367 | 10368 | otherwise, \tcode{U} |
10368 | 10369 | meets the \oldconcept{MoveConstructible} requirements. |
10369 | 10370 | \item |
|
10442 | 10443 | \expects |
10443 | 10444 | \begin{itemize} |
10444 | 10445 | \item |
10445 | | - \tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements. |
| 10446 | + \tcode{T} meets the \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} requirements. |
10446 | 10447 | \item |
10447 | 10448 | Neither \tcode{unary_op} nor \tcode{binary_op} |
10448 | 10449 | invalidates iterators or subranges, nor modifies elements in |
|
10541 | 10542 | \begin{itemize} |
10542 | 10543 | \item |
10543 | 10544 | If \tcode{init} is provided, \tcode{T} meets the |
10544 | | - \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements; |
| 10545 | + \oldconcept{MoveConstructible}\iref{cpp17.moveconstructible} requirements; |
10545 | 10546 | otherwise, \tcode{U} meets the |
10546 | 10547 | \oldconcept{MoveConstructible} requirements. |
10547 | 10548 | \item |
|
10642 | 10643 | \begin{itemize} |
10643 | 10644 | \item |
10644 | 10645 | For the overloads with no \tcode{ExecutionPolicy}, |
10645 | | - \tcode{T} meets the \oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) |
| 10646 | + \tcode{T} meets the \oldconcept{MoveAssignable}\iref{cpp17.moveassignable} |
10646 | 10647 | requirements. |
10647 | 10648 | \item |
10648 | 10649 | For all overloads, in the ranges \crange{first}{last} |
|
0 commit comments