|
15 | 15 | and algorithms from the ISO C library,
|
16 | 16 | as summarized in \tref{algorithms.summary}.
|
17 | 17 |
|
18 |
| -\begin{libsumtab}{Algorithms library summary}{tab:algorithms.summary} |
| 18 | +\begin{libsumtab}{Algorithms library summary}{algorithms.summary} |
19 | 19 | \ref{algorithms.requirements} & Algorithms requirements & \\
|
20 | 20 | \ref{algorithms.parallel} & Parallel algorithms & \\ \rowsep
|
21 | 21 | \ref{alg.nonmodifying} & Non-modifying sequence operations & \tcode{<algorithm>} \\
|
|
3001 | 3001 | \pnum
|
3002 | 3002 | \requires
|
3003 | 3003 | \tcode{Function} shall satisfy
|
3004 |
| -the \oldconcept{MoveConstructible} requirements (\tref{moveconstructible}). |
| 3004 | +the \oldconcept{MoveConstructible} requirements (\tref{cpp17.moveconstructible}). |
3005 | 3005 | \begin{note}
|
3006 | 3006 | \tcode{Function} need not meet the requirements of
|
3007 |
| -\oldconcept{CopyConstructible} (\tref{copyconstructible}). |
| 3007 | +\oldconcept{CopyConstructible} (\tref{cpp17.copyconstructible}). |
3008 | 3008 | \end{note}
|
3009 | 3009 |
|
3010 | 3010 | \pnum
|
|
4206 | 4206 | For the overload with an \tcode{ExecutionPolicy},
|
4207 | 4207 | there may be a performance cost
|
4208 | 4208 | if \tcode{iterator_traits<ForwardIterator1>::value_type}
|
4209 |
| -is not \oldconcept{\-Move\-Constructible} (\tref{moveconstructible}). |
| 4209 | +is not \oldconcept{\-Move\-Constructible} (\tref{cpp17.moveconstructible}). |
4210 | 4210 | \end{note}
|
4211 | 4211 |
|
4212 | 4212 | \pnum
|
|
4989 | 4989 | \requires
|
4990 | 4990 | For the algorithms in namespace \tcode{std},
|
4991 | 4991 | the type of \tcode{*first}
|
4992 |
| -shall meet the \oldconcept{MoveAssignable} requirements (\tref{moveassignable}). |
| 4992 | +shall meet the \oldconcept{MoveAssignable} requirements (\tref{cpp17.moveassignable}). |
4993 | 4993 |
|
4994 | 4994 | \pnum
|
4995 | 4995 | \effects
|
|
5089 | 5089 | For the overloads with an \tcode{ExecutionPolicy},
|
5090 | 5090 | there may be a performance cost
|
5091 | 5091 | if \tcode{iterator_traits<ForwardIterator1>::value_type} does not meet
|
5092 |
| -the \oldconcept{\-Move\-Constructible} (\tref{moveconstructible}) requirements. |
| 5092 | +the \oldconcept{\-Move\-Constructible} (\tref{cpp17.moveconstructible}) requirements. |
5093 | 5093 | \end{note}
|
5094 | 5094 |
|
5095 | 5095 | \pnum
|
|
5162 | 5162 | For the overloads in namepace \tcode{std},
|
5163 | 5163 | \tcode{pred} shall be an equivalence relation and
|
5164 | 5164 | the type of \tcode{*first} shall meet
|
5165 |
| -the \oldconcept{MoveAssignable} requirements (\tref{moveassignable}). |
| 5165 | +the \oldconcept{MoveAssignable} requirements (\tref{cpp17.moveassignable}). |
5166 | 5166 |
|
5167 | 5167 | \pnum
|
5168 | 5168 | \effects
|
|
5262 | 5262 | the \oldconcept{ForwardIterator} requirements and
|
5263 | 5263 | its value type is the same as \tcode{T},
|
5264 | 5264 | then \tcode{T} shall meet
|
5265 |
| - the \oldconcept{CopyAssignable} (\tref{copyassignable}) requirements. |
| 5265 | + the \oldconcept{CopyAssignable} (\tref{cpp17.copyassignable}) requirements. |
5266 | 5266 | Otherwise, \tcode{T} shall meet both
|
5267 |
| - the \oldconcept{CopyConstructible} (\tref{copyconstructible}) and |
| 5267 | + the \oldconcept{CopyConstructible} (\tref{cpp17.copyconstructible}) and |
5268 | 5268 | \oldconcept{CopyAssignable} requirements.
|
5269 | 5269 | \begin{note}
|
5270 | 5270 | For the overloads with an \tcode{ExecutionPolicy},
|
|
5412 | 5412 | \tcode{ForwardIterator} shall meet
|
5413 | 5413 | the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements}, and
|
5414 | 5414 | the type of \tcode{*first} shall meet
|
5415 |
| -the \oldconcept{MoveConstructible} (\tref{moveconstructible}) and |
5416 |
| -\oldconcept{MoveAssignable} (\tref{moveassignable}) requirements. |
| 5415 | +the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
| 5416 | +\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
5417 | 5417 |
|
5418 | 5418 | \pnum
|
5419 | 5419 | \effects
|
|
5850 | 5850 | \tcode{RandomAccessIterator} shall meet
|
5851 | 5851 | the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements} and
|
5852 | 5852 | the type of \tcode{*first} shall meet
|
5853 |
| -the \oldconcept{MoveConstructible} (\tref{moveconstructible}) and |
5854 |
| -\oldconcept{MoveAssignable} (\tref{moveassignable}) requirements. |
| 5853 | +the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
| 5854 | +\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
5855 | 5855 |
|
5856 | 5856 | \pnum
|
5857 | 5857 | \effects
|
|
5908 | 5908 | \tcode{RandomAccessIterator} shall meet
|
5909 | 5909 | the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements} and
|
5910 | 5910 | the type of \tcode{*first} shall meet
|
5911 |
| -the \oldconcept{MoveConstructible} (\tref{moveconstructible}) and |
5912 |
| -\oldconcept{MoveAssignable} (\tref{moveassignable}) requirements. |
| 5911 | +the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
| 5912 | +\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
5913 | 5913 |
|
5914 | 5914 | \pnum
|
5915 | 5915 | \effects
|
|
5978 | 5978 | \tcode{RandomAccessIterator} shall meet
|
5979 | 5979 | the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements} and
|
5980 | 5980 | the type of \tcode{*first} shall meet
|
5981 |
| -the \oldconcept{MoveConstructible} (\tref{moveconstructible}) and |
5982 |
| -\oldconcept{MoveAssignable} (\tref{moveassignable}) requirements. |
| 5981 | +the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
| 5982 | +\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
5983 | 5983 |
|
5984 | 5984 | \pnum
|
5985 | 5985 | \effects
|
|
6080 | 6080 | \tcode{RandomAccessIterator} shall meet
|
6081 | 6081 | the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements},
|
6082 | 6082 | the type of \tcode{*result_first} shall meet
|
6083 |
| -the \oldconcept{MoveConstructible} (\tref{moveconstructible}) and |
6084 |
| -\oldconcept{\-Move\-Assignable} (\tref{moveassignable}) requirements, |
| 6083 | +the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
| 6084 | +\oldconcept{\-Move\-Assignable} (\tref{cpp17.moveassignable}) requirements, |
6085 | 6085 | and the expression \tcode{*first}
|
6086 | 6086 | shall be writable\iref{iterator.requirements.general} to \tcode{result_first}.
|
6087 | 6087 |
|
|
6282 | 6282 | \tcode{RandomAccessIterator} shall meet
|
6283 | 6283 | the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements}, and
|
6284 | 6284 | the type of \tcode{*first} shall meet
|
6285 |
| -the \oldconcept{MoveConstructible} (\tref{moveconstructible}) and |
6286 |
| -\oldconcept{MoveAssignable} (\tref{moveassignable}) requirements. |
| 6285 | +the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
| 6286 | +\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
6287 | 6287 |
|
6288 | 6288 | \pnum
|
6289 | 6289 | \effects
|
|
6680 | 6680 | \tcode{BidirectionalIterator} shall meet
|
6681 | 6681 | the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements} and
|
6682 | 6682 | the type of \tcode{*first} shall meet
|
6683 |
| -the \oldconcept{MoveConstructible} (\tref{moveconstructible}) and |
6684 |
| -\oldconcept{MoveAssignable} (\tref{moveassignable}) requirements. |
| 6683 | +the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
| 6684 | +\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
6685 | 6685 |
|
6686 | 6686 | \pnum
|
6687 | 6687 | \effects
|
|
6963 | 6963 | \tcode{BidirectionalIterator} shall meet
|
6964 | 6964 | the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements} and
|
6965 | 6965 | the type of \tcode{*first} shall meet
|
6966 |
| -the \oldconcept{MoveConstructible} (\tref{moveconstructible}) and |
6967 |
| -\oldconcept{MoveAssignable} (\tref{moveassignable}) requirements. |
| 6966 | +the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
| 6967 | +\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
6968 | 6968 |
|
6969 | 6969 | \pnum
|
6970 | 6970 | \effects
|
|
7529 | 7529 | shall be a valid heap with respect to \tcode{comp} and \tcode{proj}.
|
7530 | 7530 | For the overloads in namespace \tcode{std},
|
7531 | 7531 | the type of \tcode{*first} shall meet
|
7532 |
| -the \oldconcept{MoveConstructible} requirements (\tref{moveconstructible}) and |
7533 |
| -the \oldconcept{MoveAssignable} requirements (\tref{moveassignable}). |
| 7532 | +the \oldconcept{MoveConstructible} requirements (\tref{cpp17.moveconstructible}) and |
| 7533 | +the \oldconcept{MoveAssignable} requirements (\tref{cpp17.moveassignable}). |
7534 | 7534 |
|
7535 | 7535 | \pnum
|
7536 | 7536 | \effects
|
|
7582 | 7582 | \tcode{RandomAccessIterator} shall meet
|
7583 | 7583 | the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements} and
|
7584 | 7584 | the type of \tcode{*first} shall meet
|
7585 |
| -the \oldconcept{MoveConstructible} (\tref{moveconstructible}) and |
7586 |
| -\oldconcept{MoveAssignable} (\tref{moveassignable}) requirements. |
| 7585 | +the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and |
| 7586 | +\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
7587 | 7587 |
|
7588 | 7588 | \pnum
|
7589 | 7589 | \effects
|
|
7636 | 7636 | \requires
|
7637 | 7637 | For the overloads in namespace \tcode{std},
|
7638 | 7638 | the type of \tcode{*first} shall meet
|
7639 |
| -the \oldconcept{Move\-Constructible} (\tref{moveconstructible}) and |
7640 |
| -\oldconcept{MoveAssignable} (\tref{moveassignable}) requirements. |
| 7639 | +the \oldconcept{Move\-Constructible} (\tref{cpp17.moveconstructible}) and |
| 7640 | +\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
7641 | 7641 |
|
7642 | 7642 | \pnum
|
7643 | 7643 | \effects
|
|
7689 | 7689 | \tcode{RandomAccessIterator} shall meet
|
7690 | 7690 | the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements} and
|
7691 | 7691 | the type of \tcode{*first} shall meet
|
7692 |
| -the \oldconcept{MoveConst\-ruct\-ible} (\tref{moveconstructible}) and |
7693 |
| -\oldconcept{MoveAssignable} (\tref{moveassignable}) requirements. |
| 7692 | +the \oldconcept{MoveConst\-ruct\-ible} (\tref{cpp17.moveconstructible}) and |
| 7693 | +\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements. |
7694 | 7694 |
|
7695 | 7695 | \pnum
|
7696 | 7696 | \effects
|
|
7849 | 7849 | \pnum
|
7850 | 7850 | \requires
|
7851 | 7851 | For the first form, type \tcode{T} shall be
|
7852 |
| -\oldconcept{LessThanComparable} (\tref{lessthancomparable}). |
| 7852 | +\oldconcept{LessThanComparable} (\tref{cpp17.lessthancomparable}). |
7853 | 7853 |
|
7854 | 7854 | \pnum
|
7855 | 7855 | \returns
|
|
7926 | 7926 | \pnum
|
7927 | 7927 | \requires
|
7928 | 7928 | For the first form, type \tcode{T} shall be
|
7929 |
| -\oldconcept{LessThanComparable} (\tref{lessthancomparable}). |
| 7929 | +\oldconcept{LessThanComparable} (\tref{cpp17.lessthancomparable}). |
7930 | 7930 |
|
7931 | 7931 | \pnum
|
7932 | 7932 | \returns
|
|
8005 | 8005 | \pnum
|
8006 | 8006 | \requires
|
8007 | 8007 | For the first form, type \tcode{T} shall be
|
8008 |
| -\oldconcept{LessThanComparable} (\tref{lessthancomparable}). |
| 8008 | +\oldconcept{LessThanComparable} (\tref{cpp17.lessthancomparable}). |
8009 | 8009 |
|
8010 | 8010 | \pnum
|
8011 | 8011 | \returns
|
|
8226 | 8226 | \requires
|
8227 | 8227 | The value of \tcode{lo} shall be no greater than \tcode{hi}.
|
8228 | 8228 | For the first form, type \tcode{T}
|
8229 |
| -shall be \oldconcept{LessThan\-Comparable} (\tref{lessthancomparable}). |
| 8229 | +shall be \oldconcept{LessThan\-Comparable} (\tref{cpp17.lessthancomparable}). |
8230 | 8230 |
|
8231 | 8231 | \pnum
|
8232 | 8232 | \returns
|
|
8804 | 8804 | \pnum
|
8805 | 8805 | \requires
|
8806 | 8806 | \tcode{T} shall satisfy
|
8807 |
| -the \oldconcept{CopyConstructible} (\tref{copyconstructible}) |
8808 |
| -and \oldconcept{CopyAssignable} (\tref{copyassignable}) requirements. |
| 8807 | +the \oldconcept{CopyConstructible} (\tref{cpp17.copyconstructible}) |
| 8808 | +and \oldconcept{CopyAssignable} (\tref{cpp17.copyassignable}) requirements. |
8809 | 8809 | In the range \crange{first}{last},
|
8810 | 8810 | \tcode{binary_op} shall neither modify elements
|
8811 | 8811 | nor invalidate iterators or subranges.%
|
|
8907 | 8907 | \requires
|
8908 | 8908 | \begin{itemize}
|
8909 | 8909 | \item
|
8910 |
| - \tcode{T} shall be \oldconcept{MoveConstructible} (\tref{moveconstructible}). |
| 8910 | + \tcode{T} shall be \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}). |
8911 | 8911 | \item
|
8912 | 8912 | All of \tcode{binary_op(init, *first)}, \tcode{binary_op(*first, init)},
|
8913 | 8913 | \tcode{binary_op(init, init)}, and \tcode{binary_op(*first, *first)}
|
|
8955 | 8955 | \pnum
|
8956 | 8956 | \requires
|
8957 | 8957 | \tcode{T} shall satisfy
|
8958 |
| -the \oldconcept{CopyConstructible} (\tref{copyconstructible}) |
8959 |
| -and \oldconcept{CopyAssignable} (\tref{copyassignable}) requirements. |
| 8958 | +the \oldconcept{CopyConstructible} (\tref{cpp17.copyconstructible}) |
| 8959 | +and \oldconcept{CopyAssignable} (\tref{cpp17.copyassignable}) requirements. |
8960 | 8960 | In the ranges \crange{first1}{last1} and
|
8961 | 8961 | \crange{first2}{first2 + (last1 - first1)}
|
8962 | 8962 | \tcode{binary_op1} and \tcode{binary_op2}
|
|
9038 | 9038 | \requires
|
9039 | 9039 | \begin{itemize}
|
9040 | 9040 | \item
|
9041 |
| - \tcode{T} shall be \oldconcept{MoveConstructible} (\tref{moveconstructible}). |
| 9041 | + \tcode{T} shall be \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}). |
9042 | 9042 | \item
|
9043 | 9043 | All of
|
9044 | 9044 | \begin{itemize}
|
|
9086 | 9086 | \requires
|
9087 | 9087 | \begin{itemize}
|
9088 | 9088 | \item
|
9089 |
| - \tcode{T} shall be \oldconcept{MoveConstructible} (\tref{moveconstructible}). |
| 9089 | + \tcode{T} shall be \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}). |
9090 | 9090 | \item
|
9091 | 9091 | All of
|
9092 | 9092 | \begin{itemize}
|
|
9224 | 9224 | \requires
|
9225 | 9225 | \begin{itemize}
|
9226 | 9226 | \item
|
9227 |
| - \tcode{T} shall be \oldconcept{MoveConstructible} (\tref{moveconstructible}). |
| 9227 | + \tcode{T} shall be \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}). |
9228 | 9228 | \item
|
9229 | 9229 | All of
|
9230 | 9230 | \tcode{binary_op(init, init)},
|
|
9327 | 9327 | \begin{itemize}
|
9328 | 9328 | \item
|
9329 | 9329 | If \tcode{init} is provided,
|
9330 |
| - \tcode{T} shall be \oldconcept{MoveConstructible} (\tref{moveconstructible}); |
| 9330 | + \tcode{T} shall be \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}); |
9331 | 9331 | otherwise, \tcode{ForwardIterator1}'s value type
|
9332 | 9332 | shall be \oldconcept{MoveConstructible}.
|
9333 | 9333 | \item
|
|
9402 | 9402 | \requires
|
9403 | 9403 | \begin{itemize}
|
9404 | 9404 | \item
|
9405 |
| - \tcode{T} shall be \oldconcept{MoveConstructible} (\tref{moveconstructible}). |
| 9405 | + \tcode{T} shall be \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}). |
9406 | 9406 | \item
|
9407 | 9407 | All of
|
9408 | 9408 | \begin{itemize}
|
|
9490 | 9490 | \begin{itemize}
|
9491 | 9491 | \item
|
9492 | 9492 | If \tcode{init} is provided, \tcode{T} shall be
|
9493 |
| - \oldconcept{MoveConstructible} (\tref{moveconstructible}); |
| 9493 | + \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}); |
9494 | 9494 | otherwise, \tcode{ForwardIterator1}'s value type shall be
|
9495 | 9495 | \oldconcept{MoveConstructible}.
|
9496 | 9496 | \item
|
|
9583 | 9583 | \begin{itemize}
|
9584 | 9584 | \item
|
9585 | 9585 | For the overloads with no \tcode{ExecutionPolicy},
|
9586 |
| - \tcode{T} shall be \oldconcept{MoveAssignable} (\tref{moveassignable}) and |
| 9586 | + \tcode{T} shall be \oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) and |
9587 | 9587 | shall be constructible from the type of \tcode{*first}.
|
9588 | 9588 | \tcode{acc} (defined below) shall be
|
9589 | 9589 | writable\iref{iterator.requirements.general}
|
|
0 commit comments