diff --git a/doc/html/mp11.html b/doc/html/mp11.html index c8b05d3..6489b42 100644 --- a/doc/html/mp11.html +++ b/doc/html/mp11.html @@ -108,8 +108,6 @@
mp_remove_if<L, P>
mp_partition<L, P>
mp_sort<L, P>
-
mp_find_index<L, V>
-
mp_find_index_if<L, P>
mp_find<L, V>
mp_find_if<L, P>
mp_reverse<L>
@@ -859,31 +857,31 @@

-mp_find_index<L, V> -

-
template<class L, class V> using mp_find_index = /*...*/;
-
-
-
-

-mp_find_index_if<L, P> -

-
template<class L, template<class...> class P> using mp_find_index_if = /*...*/;
-
-
-
-

mp_find<L, V>

-
template<class L, class V> using mp_find = mp_drop<L, mp_find_index<L, V>>;
+
template<class L, class V> using mp_find = /*...*/;
 
+

+ mp_find<L, V> is an alias for mp_size_t<I>, where I + is the zero-based index of the first occurence of V + in L. If L does not contain V, + mp_find<L, V> is mp_size<L>. +

mp_find_if<L, P>

-
template<class L, template<class...> class P> using mp_find_if = mp_drop<L, mp_find_index_if<L, P>>;
+
template<class L, template<class...> class P> using mp_find_if = /*...*/;
 
+

+ mp_find_f<L, P> is an alias for mp_size_t<I>, where I + is the zero-based index of the first element T + in L for which mp_to_bool<P<T>> + is mp_true. If there is + no such element, mp_find<L, V> + is mp_size<L>. +

@@ -891,6 +889,9 @@

template<class L> using mp_reverse = /*...*/;
 
+

+ mp_reverse<L<T1, T2, ..., Tn>> is L<Tn, ..., T2, T1>. +

@@ -898,6 +899,15 @@

template<class L, class V, template<class...> class F> using mp_fold = /*...*/;
 
+

+ mp_fold<L<T1, T2, ..., Tn>, V, F> + is F< + F< + F< + F<V, T1>, T2>, ...>, + Tn>, + or V, if L is empty. +

@@ -905,6 +915,11 @@

template<class L, class V, template<class...> class F> using mp_reverse_fold = /*...*/;
 
+

+ mp_reverse_fold<L<T1, T2, ..., Tn>, V, F> + is F<T1, F<T2, F<..., F<Tn, V>>>>, + or V, if L is empty. +

@@ -912,6 +927,11 @@

template<class L> using mp_unique = /*...*/;
 
+

+ mp_unique<L> + returns a list of the same type as L + with the duplicate elements removed. +

@@ -919,6 +939,13 @@

template<class L, template<class...> class P> using mp_all_of = mp_bool< mp_count_if<L, P>::value == mp_size<L>::value >;
 
+

+ mp_all_of<L, P> is mp_true + when P holds for all elements + of L, mp_false + otherwise. When L is empty, + the result is mp_true. +

@@ -926,6 +953,13 @@

template<class L, template<class...> class P> using mp_none_of = mp_bool< mp_count_if<L, P>::value == 0 >;
 
+

+ mp_none_of<L, P> is mp_true + when P holds for no element + of L, mp_false + otherwise. When L is empty, + the result is mp_true. +

@@ -933,6 +967,11 @@

template<class L, template<class...> class P> using mp_any_of = mp_bool< mp_count_if<L, P>::value != 0 >;
 
+

+ mp_any_of<L, P> is mp_true + when P holds for at least + one element of L, mp_false otherwise. When L is empty, the result is mp_false. +

@@ -1067,7 +1106,7 @@
- +

Last revised: March 15, 2017 at 17:28:31 GMT

Last revised: March 15, 2017 at 18:15:15 GMT


diff --git a/doc/mp11/algorithm.qbk b/doc/mp11/algorithm.qbk index 7025c19..ad25649 100644 --- a/doc/mp11/algorithm.qbk +++ b/doc/mp11/algorithm.qbk @@ -169,48 +169,60 @@ for the elements of `L` and `mp_false` for the elements of `L`. Re `mp_sort` sorts the list `L` according to the strict weak ordering `mp_to_bool>`. [endsect] -[section `mp_find_index`] - template using mp_find_index = /*...*/; -[endsect] - -[section `mp_find_index_if`] - template class P> using mp_find_index_if = /*...*/; -[endsect] - [section `mp_find`] - template using mp_find = mp_drop>; + template using mp_find = /*...*/; + +`mp_find` is an alias for `mp_size_t`, where `I` is the zero-based index of the first occurence of `V` in `L`. If +`L` does not contain `V`, `mp_find` is `mp_size`. [endsect] [section `mp_find_if`] - template class P> using mp_find_if = mp_drop>; + template class P> using mp_find_if = /*...*/; + +`mp_find_f` is an alias for `mp_size_t`, where `I` is the zero-based index of the first element `T` in `L` for which +`mp_to_bool>` is `mp_true`. If there is no such element, `mp_find` is `mp_size`. [endsect] [section `mp_reverse`] template using mp_reverse = /*...*/; + +`mp_reverse>` is `L`. [endsect] [section `mp_fold`] template class F> using mp_fold = /*...*/; + +`mp_fold, V, F>` is `F< F< F< F, T2>, ...>, Tn>`, or `V`, if `L` is empty. [endsect] [section `mp_reverse_fold`] template class F> using mp_reverse_fold = /*...*/; + +`mp_reverse_fold, V, F>` is `F>>>`, or `V`, if `L` is empty. [endsect] [section `mp_unique`] template using mp_unique = /*...*/; + +`mp_unique` returns a list of the same type as `L` with the duplicate elements removed. [endsect] [section `mp_all_of`] template class P> using mp_all_of = mp_bool< mp_count_if::value == mp_size::value >; + +`mp_all_of` is `mp_true` when `P` holds for all elements of `L`, `mp_false` otherwise. When `L` is empty, the result is `mp_true`. [endsect] [section `mp_none_of`] template class P> using mp_none_of = mp_bool< mp_count_if::value == 0 >; + +`mp_none_of` is `mp_true` when `P` holds for no element of `L`, `mp_false` otherwise. When `L` is empty, the result is `mp_true`. [endsect] [section `mp_any_of`] template class P> using mp_any_of = mp_bool< mp_count_if::value != 0 >; + +`mp_any_of` is `mp_true` when `P` holds for at least one element of `L`, `mp_false` otherwise. When `L` is empty, the result is `mp_false`. [endsect] [endsect]