\hypertarget{algorithm_8h_source}{}\doxysection{algorithm.\+h}
\label{algorithm_8h_source}\index{kblib/algorithm.h@{kblib/algorithm.h}}
\mbox{\hyperlink{algorithm_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00001}00001 \textcolor{comment}{/* *****************************************************************************}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00002}00002 \textcolor{comment}{ * kblib is a general utility library for C++14 and C++17, intended to provide}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00003}00003 \textcolor{comment}{ * performant high-\/level abstractions and more expressive ways to do simple}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00004}00004 \textcolor{comment}{ * things.}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00005}00005 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00006}00006 \textcolor{comment}{ * Copyright (c) 2021 killerbee}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00008}00008 \textcolor{comment}{ * This program is free software: you can redistribute it and/or modify}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00009}00009 \textcolor{comment}{ * it under the terms of the GNU General Public License as published by}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00010}00010 \textcolor{comment}{ * the Free Software Foundation, either version 3 of the License, or}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00011}00011 \textcolor{comment}{ * (at your option) any later version.}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00012}00012 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00013}00013 \textcolor{comment}{ * This program is distributed in the hope that it will be useful,}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00014}00014 \textcolor{comment}{ * but WITHOUT ANY WARRANTY; without even the implied warranty of}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00015}00015 \textcolor{comment}{ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00016}00016 \textcolor{comment}{ * GNU General Public License for more details.}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00017}00017 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00018}00018 \textcolor{comment}{ * You should have received a copy of the GNU General Public License}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00019}00019 \textcolor{comment}{ * along with this program.  If not, see <https://www.gnu.org/licenses/>.}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00020}00020 \textcolor{comment}{ * ****************************************************************************/}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00021}00021 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00032}00032 \textcolor{preprocessor}{\#ifndef ALGORITHM\_H}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00033}00033 \textcolor{preprocessor}{\#define ALGORITHM\_H}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00034}00034 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00035}00035 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{tdecl_8h}{tdecl.h}}"{}}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00036}00036 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00037}00037 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{iterators_8h}{iterators.h}}"{}}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00038}00038 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{traits_8h}{traits.h}}"{}}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00039}00039 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00040}00040 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00041}00041 \textcolor{preprocessor}{\#include <cmath>}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00042}00042 \textcolor{preprocessor}{\#include <tuple>}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00043}00043 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00044}\mbox{\hyperlink{namespacekblib}{00044}} \textcolor{keyword}{namespace }\mbox{\hyperlink{tdecl_8h_a4b5c574c663a392148218cd4410fd7a1}{KBLIB\_NS}} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00045}00045 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00052}00052 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Callable>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00053}\mbox{\hyperlink{namespacekblib_afc6af3c7ee821bb25dd692bd2fc92adb}{00053}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_afc6af3c7ee821bb25dd692bd2fc92adb}{repeat}}(std::size\_t N, Callable func) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(func()))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00054}00054     -\/> \mbox{\hyperlink{namespacekblib_acdb4473ef9196a18a0e37e05171729f0}{return\_assert\_t<is\_invocable<Callable>::value}}, \textcolor{keywordtype}{void}> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00055}00055    \textcolor{keywordflow}{for} (std::size\_t I = 0; I != N; ++I) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00056}00056       func();}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00057}00057    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00058}00058    \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00059}00059 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00060}00060 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00067}00067 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} Elem>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00068}\mbox{\hyperlink{namespacekblib_aa760b40ea7f60976c66be6d77345317b}{00068}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_aa760b40ea7f60976c66be6d77345317b}{erase}}(Container\& c, \textcolor{keyword}{const} Elem\& val) \textcolor{keyword}{noexcept}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00069}00069     \textcolor{keyword}{noexcept}(c.erase(std::remove(c.begin(), c.end(), val), c.end()))) -\/> \textcolor{keywordtype}{void} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00070}00070    c.erase(std::remove(c.begin(), c.end(), val), c.end());}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00071}00071    \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00072}00072 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00073}00073 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00080}00080 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00081}\mbox{\hyperlink{namespacekblib_aa1240cf764c5182f37ab5b5051f90b40}{00081}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_aa1240cf764c5182f37ab5b5051f90b40}{erase\_if}}(Container\& c, UnaryPredicate p) \textcolor{keyword}{noexcept}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00082}00082     \textcolor{keyword}{noexcept}(c.erase(std::remove\_if(c.begin(), c.end(), std::ref(p)), c.end())))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00083}00083     -\/> \textcolor{keywordtype}{void} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00084}00084    c.erase(std::remove\_if(c.begin(), c.end(), std::ref(p)), c.end());}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00085}00085    \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00086}00086 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00087}00087 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00093}00093 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Obj>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00094}\mbox{\hyperlink{namespacekblib_a69f8d0752435e17b0c99ece2a5b599bb}{00094}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a20a98aa6b6876ad518d999ed85864a85}{equals}}(\textcolor{keyword}{const} Obj\& \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}},}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00095}00095                                       \textcolor{keyword}{const} Obj\& b) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}} < b))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00096}00096     -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00097}00097    \textcolor{keywordflow}{return} not (\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}} < b) and not (b < \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}});}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00098}00098 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00099}00099 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00105}00105 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Obj, \textcolor{keyword}{typename} Compare>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00106}\mbox{\hyperlink{namespacekblib_a20a98aa6b6876ad518d999ed85864a85}{00106}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a20a98aa6b6876ad518d999ed85864a85}{equals}}(\textcolor{keyword}{const} Obj\& \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, \textcolor{keyword}{const} Obj\& b,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00107}00107                                       Compare comp) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(comp(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}},}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00108}00108                                                                            b)))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00109}00109     -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00110}00110    \textcolor{keywordflow}{return} not comp(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, b) and not comp(b, \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}});}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00111}00111 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00112}00112 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00122}00122 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Compare = \textcolor{keywordtype}{void}, \textcolor{keyword}{typename} Obj = \textcolor{keywordtype}{void}>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00123}\mbox{\hyperlink{structkblib_1_1equivalent}{00123}} \textcolor{keyword}{struct }\mbox{\hyperlink{structkblib_1_1equivalent}{equivalent}} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00124}\mbox{\hyperlink{structkblib_1_1equivalent_a7f98fdc8ae52934bf9fb4e38ee5f5c51}{00124}}    \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{structkblib_1_1equivalent_a7f98fdc8ae52934bf9fb4e38ee5f5c51}{operator()}}(\textcolor{keyword}{const} Obj\& \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, \textcolor{keyword}{const} Obj\& b,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00125}00125                                              Compare comp) \textcolor{keyword}{const}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00126}00126        \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a20a98aa6b6876ad518d999ed85864a85}{equals}}(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, b, comp))) -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00127}00127       \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a20a98aa6b6876ad518d999ed85864a85}{equals}}(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, b, comp);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00128}00128    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00129}00129 \};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00130}00130 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00131}00131 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Obj>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00132}\mbox{\hyperlink{structkblib_1_1equivalent_3_01void_00_01_obj_01_4}{00132}} \textcolor{keyword}{struct }\mbox{\hyperlink{structkblib_1_1equivalent}{equivalent}}<void, Obj> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00133}\mbox{\hyperlink{structkblib_1_1equivalent_3_01void_00_01_obj_01_4_afd4804cff8b0cc714ec36925c1c519b8}{00133}}    \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{structkblib_1_1equivalent_3_01void_00_01_obj_01_4_afd4804cff8b0cc714ec36925c1c519b8}{operator()}}(\textcolor{keyword}{const} Obj\& \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, \textcolor{keyword}{const} Obj\& b) \textcolor{keyword}{const}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00134}00134        \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a20a98aa6b6876ad518d999ed85864a85}{equals}}(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, b))) -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00135}00135       \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a20a98aa6b6876ad518d999ed85864a85}{equals}}(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, b);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00136}00136    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00137}00137 \};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00138}00138 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00139}00139 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Compare>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00140}\mbox{\hyperlink{structkblib_1_1equivalent_3_01_compare_00_01void_01_4}{00140}} \textcolor{keyword}{struct }\mbox{\hyperlink{structkblib_1_1equivalent}{equivalent}}<Compare, void> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00141}00141    \textcolor{keyword}{template} <\textcolor{keyword}{typename} Obj>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00142}\mbox{\hyperlink{structkblib_1_1equivalent_3_01_compare_00_01void_01_4_a3b778b30a3b865b3688a2e525d51c06d}{00142}}    \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{structkblib_1_1equivalent_3_01_compare_00_01void_01_4_a3b778b30a3b865b3688a2e525d51c06d}{operator()}}(\textcolor{keyword}{const} Obj\& \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, \textcolor{keyword}{const} Obj\& b,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00143}00143                                              Compare comp) \textcolor{keyword}{const}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00144}00144        \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a20a98aa6b6876ad518d999ed85864a85}{equals}}(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, b, comp))) -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00145}00145       \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a20a98aa6b6876ad518d999ed85864a85}{equals}}(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, b, comp);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00146}00146    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00147}00147 \};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00148}00148 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00149}00149 \textcolor{keyword}{template} <>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00150}\mbox{\hyperlink{structkblib_1_1equivalent_3_01void_00_01void_01_4}{00150}} \textcolor{keyword}{struct }\mbox{\hyperlink{structkblib_1_1equivalent}{equivalent}}<void, void> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00151}00151    \textcolor{keyword}{template} <\textcolor{keyword}{typename} Obj>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00152}\mbox{\hyperlink{structkblib_1_1equivalent_3_01void_00_01void_01_4_ad78667bc686e848137fdd0de953ebac8}{00152}}    \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{structkblib_1_1equivalent_3_01void_00_01void_01_4_ad78667bc686e848137fdd0de953ebac8}{operator()}}(\textcolor{keyword}{const} Obj\& \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, \textcolor{keyword}{const} Obj\& b) \textcolor{keyword}{const}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00153}00153        \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a20a98aa6b6876ad518d999ed85864a85}{equals}}(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, b))) -\/> \textcolor{keywordtype}{bool} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00154}00154       \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a20a98aa6b6876ad518d999ed85864a85}{equals}}(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, b);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00155}00155    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00156}00156 \};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00157}00157 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00161}00161 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00162}\mbox{\hyperlink{namespacekblib_abedf2e5c556e6ab3ebb779227172a2ac}{00162}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a144f3d9a7e4b619bc53fbaf5e356c0c2}{accumulate}}(InputIt first, InputIt last, T init)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00163}00163     -\/> T \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00164}00164    \textcolor{keywordflow}{for} (; first != last; ++first) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00165}00165       init = std::move(init) + *first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00166}00166    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00167}00167    \textcolor{keywordflow}{return} init;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00168}00168 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00169}00169 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00173}00173 \textcolor{keyword}{template} <\textcolor{keyword}{class} InputIt, \textcolor{keyword}{class} T, \textcolor{keyword}{class} BinaryOperation>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00174}\mbox{\hyperlink{namespacekblib_a144f3d9a7e4b619bc53fbaf5e356c0c2}{00174}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a144f3d9a7e4b619bc53fbaf5e356c0c2}{accumulate}}(InputIt first, InputIt last, T init,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00175}00175                                           BinaryOperation op) -\/> T \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00176}00176    \textcolor{keywordflow}{for} (; first != last; ++first) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00177}00177       init = op(std::move(init), *first);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00178}00178    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00179}00179    \textcolor{keywordflow}{return} init;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00180}00180 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00181}00181 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00193}00193 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00194}\mbox{\hyperlink{namespacekblib_ab0380312efcdc59f34b028e698c265dc}{00194}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ac8b5f9fd83c3ec829e9ee86c2c7424f1}{sum}}(InputIt first, InputIt last)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00195}00195     -\/> \mbox{\hyperlink{namespacekblib_a9dcf2233bc360ff26fbbf82d98cdc64d}{std::decay\_t}}<\textcolor{keyword}{decltype}(*first)> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00196}00196    \textcolor{keywordflow}{if} (first == last) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00197}00197       \textcolor{keywordflow}{return} \{\};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00198}00198    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00199}00199    \textcolor{keyword}{auto} init = *first++;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00200}00200    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_abedf2e5c556e6ab3ebb779227172a2ac}{kblib::accumulate}}(first, last, std::move(init));}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00201}00201 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00202}00202 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00215}00215 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} BinaryOperation>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00216}\mbox{\hyperlink{namespacekblib_ae86453386b48c0a0ad1b43938e4f7022}{00216}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ac8b5f9fd83c3ec829e9ee86c2c7424f1}{sum}}(InputIt first, InputIt last,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00217}00217                                    BinaryOperation op)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00218}00218     -\/> \mbox{\hyperlink{namespacekblib_a9dcf2233bc360ff26fbbf82d98cdc64d}{std::decay\_t}}<\textcolor{keyword}{decltype}(*first)> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00219}00219    \textcolor{keywordflow}{if} (first == last) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00220}00220       \textcolor{keywordflow}{return} \{\};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00221}00221    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00222}00222    \textcolor{keyword}{auto} init = *first++;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00223}00223    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_abedf2e5c556e6ab3ebb779227172a2ac}{kblib::accumulate}}(first, last, std::move(init), op);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00224}00224 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00225}00225 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00236}00236 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Range>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00237}\mbox{\hyperlink{namespacekblib_ac8b5f9fd83c3ec829e9ee86c2c7424f1}{00237}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ac8b5f9fd83c3ec829e9ee86c2c7424f1}{sum}}(Range\&\& r) -\/> \textcolor{keyword}{auto} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00238}00238    \textcolor{keyword}{using }std::begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00239}00239    \textcolor{keyword}{using }std::end;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00240}00240    \textcolor{keyword}{auto} first = begin(r);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00241}00241    \textcolor{keyword}{auto} last = end(r);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00242}00242    \textcolor{keywordflow}{if} (first == last) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00243}00243       \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a9dcf2233bc360ff26fbbf82d98cdc64d}{std::decay\_t}}<\textcolor{keyword}{decltype}(*first)>\{\};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00244}00244    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00245}00245    \textcolor{keyword}{auto} init = *first++;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00246}00246    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_abedf2e5c556e6ab3ebb779227172a2ac}{kblib::accumulate}}(first, last, std::move(init));}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00247}00247 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00248}00248 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00249}00249 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} OutputIt, \textcolor{keyword}{typename} T,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00250}00250           \textcolor{keyword}{typename} BinaryAccumulation, \textcolor{keyword}{typename} UnaryTransform>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00251}\mbox{\hyperlink{namespacekblib_aa51ef49b30290e4d7d6f7201e58560c1}{00251}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_aa51ef49b30290e4d7d6f7201e58560c1}{transform\_exclusive\_scan}}(InputIt first, EndIt last,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00252}00252                                         OutputIt d\_first, T init,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00253}00253                                         BinaryAccumulation accum,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00254}00254                                         UnaryTransform proj) -\/> OutputIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00255}00255    \textcolor{keywordflow}{while} (first != last) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00256}00256       *d\_first++}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00257}00257           = \mbox{\hyperlink{namespacekblib_a0c3f29dc7d19ffe01f977ce294ee537a}{kblib::exchange}}(init, accum(std::move(init), proj(*first++)));}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00258}00258    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00259}00259    \textcolor{keywordflow}{return} d\_first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00260}00260 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00261}00261 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00262}00262 \textcolor{preprocessor}{\#if 0}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00263}00263 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} BinaryAccumulation,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00264}00264           \textcolor{keyword}{typename} BinaryTransform>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00265}00265 \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00266}00266 adjacent\_reduce(InputIt begin, InputIt begin1, InputIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00267}00267                 BinaryAccumulation acc, BinaryTransform op) \{\}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00268}00268 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00269}00269 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} BinaryTransform>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00270}00270 \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} adjacent\_transform(InputIt begin, InputIt begin1,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00271}00271                                                   InputIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00272}00272                                                   BinaryTransform op) \{\}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00273}00273 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00274}00274 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} BinaryAccumulation,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00275}00275           \textcolor{keyword}{typename} BinaryTransform>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00276}00276 \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00277}00277 adjacent\_inclusive\_scan(InputIt begin, InputIt begin1, InputIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00278}00278                         BinaryAccumulation acc, BinaryTransform op) \{\}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00279}00279 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00280}00280 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00289}00289 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} Elem>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00290}\mbox{\hyperlink{namespacekblib_abc7f2ec97efdee8640fe38e73fe1fdad}{00290}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a7cb44e374b0d5edb7ebce7e1a4e9862d}{find}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00291}00291     ForwardIt begin, EndIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00292}00292     \textcolor{keyword}{const} Elem\& value) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(*begin == value)) -\/> ForwardIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00293}00293    \textcolor{keywordflow}{while} (begin != end and *begin != value) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00294}00294       ++begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00295}00295    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00296}00296    \textcolor{keywordflow}{return} begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00297}00297 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00298}00298 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00308}00308 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} Elem, \textcolor{keyword}{typename} Comp>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00309}\mbox{\hyperlink{namespacekblib_a7cb44e374b0d5edb7ebce7e1a4e9862d}{00309}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a7cb44e374b0d5edb7ebce7e1a4e9862d}{find}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00310}00310     ForwardIt begin, EndIt end, \textcolor{keyword}{const} Elem\& value,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00311}00311     Comp\&\& comp) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(comp(*begin, value))) -\/> ForwardIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00312}00312    \textcolor{keywordflow}{while} (begin != end and not \mbox{\hyperlink{namespacekblib_a20a98aa6b6876ad518d999ed85864a85}{equals}}(*begin, value, comp)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00313}00313       ++begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00314}00314    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00315}00315    \textcolor{keywordflow}{return} begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00316}00316 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00317}00317 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00326}00326 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00327}\mbox{\hyperlink{namespacekblib_a4b49eacc73a9295677cb08d9b7892ff6}{00327}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a4b49eacc73a9295677cb08d9b7892ff6}{find\_if}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00328}00328     ForwardIt begin, EndIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00329}00329     UnaryPredicate\&\& pred) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *begin)))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00330}00330     -\/> ForwardIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00331}00331    \textcolor{keywordflow}{while} (begin != end and not \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *begin)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00332}00332       ++begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00333}00333    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00334}00334    \textcolor{keywordflow}{return} begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00335}00335 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00336}00336 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00345}00345 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00346}\mbox{\hyperlink{namespacekblib_ac30ce90c5b10639c0243952248897b51}{00346}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ac30ce90c5b10639c0243952248897b51}{find\_if\_not}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00347}00347     ForwardIt begin, EndIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00348}00348     UnaryPredicate\&\& pred) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *begin)))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00349}00349     -\/> ForwardIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00350}00350    \textcolor{keywordflow}{while} (begin != end and \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *begin)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00351}00351       ++begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00352}00352    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00353}00353    \textcolor{keywordflow}{return} begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00354}00354 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00355}00355 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00365}00365 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} Elem>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00366}\mbox{\hyperlink{namespacekblib_a985430339c0a2e1100d0c77faa47806f}{00366}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a985430339c0a2e1100d0c77faa47806f}{find\_last}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00367}00367     ForwardIt begin, EndIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00368}00368     \textcolor{keyword}{const} Elem\& value) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(*begin == value)) -\/> ForwardIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00369}00369    \textcolor{keywordflow}{if} (begin == end) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00370}00370       \textcolor{keywordflow}{return} begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00371}00371    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00372}00372    \textcolor{keyword}{auto} result = end;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00373}00373    \textcolor{keywordflow}{while} (\textcolor{keyword}{true}) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00374}00374       \textcolor{keyword}{auto} new\_result = \mbox{\hyperlink{namespacekblib_abc7f2ec97efdee8640fe38e73fe1fdad}{kblib::find}}(begin, end, value);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00375}00375       \textcolor{keywordflow}{if} (new\_result == end) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00376}00376          \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00377}00377       \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00378}00378          result = new\_result;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00379}00379          begin = result;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00380}00380          ++begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00381}00381       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00382}00382    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00383}00383    \textcolor{keywordflow}{return} result;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00384}00384 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00385}00385 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00395}00395 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00396}\mbox{\hyperlink{namespacekblib_afdfe60b4f1096a9f60d07cdfb4b5e427}{00396}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_afdfe60b4f1096a9f60d07cdfb4b5e427}{find\_last\_if}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00397}00397     ForwardIt begin, EndIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00398}00398     UnaryPredicate pred) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *begin)))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00399}00399     -\/> ForwardIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00400}00400    \textcolor{keywordflow}{if} (begin == end) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00401}00401       \textcolor{keywordflow}{return} begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00402}00402    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00403}00403    \textcolor{keyword}{auto} result = end;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00404}00404    \textcolor{keywordflow}{while} (\textcolor{keyword}{true}) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00405}00405       \textcolor{keyword}{auto} new\_result = \mbox{\hyperlink{namespacekblib_a4b49eacc73a9295677cb08d9b7892ff6}{kblib::find\_if}}(begin, end, pred);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00406}00406       \textcolor{keywordflow}{if} (new\_result == end) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00407}00407          \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00408}00408       \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00409}00409          result = new\_result;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00410}00410          begin = result;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00411}00411          ++begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00412}00412       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00413}00413    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00414}00414    \textcolor{keywordflow}{return} result;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00415}00415 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00416}00416 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00426}00426 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00427}\mbox{\hyperlink{namespacekblib_a1782641d7170a2ef57145e460fe059be}{00427}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a1782641d7170a2ef57145e460fe059be}{find\_last\_if\_not}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00428}00428     ForwardIt begin, EndIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00429}00429     UnaryPredicate pred) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *begin)))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00430}00430     -\/> ForwardIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00431}00431    \textcolor{keywordflow}{if} (begin == end) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00432}00432       \textcolor{keywordflow}{return} begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00433}00433    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00434}00434    \textcolor{keyword}{auto} result = end;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00435}00435    \textcolor{keywordflow}{while} (\textcolor{keyword}{true}) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00436}00436       \textcolor{keyword}{auto} new\_result = \mbox{\hyperlink{namespacekblib_ac30ce90c5b10639c0243952248897b51}{kblib::find\_if\_not}}(begin, end, pred);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00437}00437       \textcolor{keywordflow}{if} (new\_result == end) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00438}00438          \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00439}00439       \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00440}00440          result = new\_result;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00441}00441          begin = result;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00442}00442          ++begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00443}00443       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00444}00444    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00445}00445    \textcolor{keywordflow}{return} result;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00446}00446 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00447}00447 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00457}00457 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} Elem>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00458}\mbox{\hyperlink{namespacekblib_a6cc206fcdb4a68b8cb6e393b5039a575}{00458}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a4b840bb625a22f5dfd674050892d3be1}{find\_in}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00459}00459     ForwardIt begin, EndIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00460}00460     \textcolor{keyword}{const} Elem\& value) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(*begin == value)) -\/> \textcolor{keywordtype}{size\_t} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00461}00461    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_af9e250fffa2922e623baa08aa8994f54}{to\_unsigned}}(\mbox{\hyperlink{namespacekblib_abc7f2ec97efdee8640fe38e73fe1fdad}{kblib::find}}(begin, end, value) -\/ begin);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00462}00462 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00463}00463 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00473}00473 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00474}\mbox{\hyperlink{namespacekblib_ae565c2bd3542ecc900319508c4204a0d}{00474}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ab9d81bc7ce57c24888b9eebce31b596c}{find\_in\_if}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00475}00475     ForwardIt begin, EndIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00476}00476     UnaryPredicate pred) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *begin)))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00477}00477     -\/> \textcolor{keywordtype}{size\_t} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00478}00478    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_af9e250fffa2922e623baa08aa8994f54}{to\_unsigned}}(\mbox{\hyperlink{namespacekblib_a4b49eacc73a9295677cb08d9b7892ff6}{kblib::find\_if}}(begin, end, pred) -\/ begin);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00479}00479 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00489}00489 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00490}\mbox{\hyperlink{namespacekblib_a104b402a896c7ba42eeb1ba513961cb6}{00490}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ad66766d83405b85f422894329c1b0762}{find\_in\_if\_not}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00491}00491     ForwardIt begin, EndIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00492}00492     UnaryPredicate pred) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *begin)))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00493}00493     -\/> \textcolor{keywordtype}{size\_t} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00494}00494    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_af9e250fffa2922e623baa08aa8994f54}{to\_unsigned}}(\mbox{\hyperlink{namespacekblib_ac30ce90c5b10639c0243952248897b51}{kblib::find\_if\_not}}(begin, end, pred) -\/ begin);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00495}00495 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00496}00496 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00497}00497 \textcolor{comment}{// find\_last\_in:}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00498}00498 \textcolor{comment}{// 1. Finds last v in range [begin, end) and returns the offset from begin}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00499}00499 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00509}00509 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} Elem>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00510}\mbox{\hyperlink{namespacekblib_add03c5bc4490749865e16dff9030aa24}{00510}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a01ea69026c0c1b4403fd1f9e37bdf104}{find\_last\_in}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00511}00511     ForwardIt begin, EndIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00512}00512     \textcolor{keyword}{const} Elem\& value) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(*begin == value)) -\/> \textcolor{keywordtype}{size\_t} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00513}00513    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_af9e250fffa2922e623baa08aa8994f54}{to\_unsigned}}(\mbox{\hyperlink{namespacekblib_a985430339c0a2e1100d0c77faa47806f}{kblib::find\_last}}(begin, end, value) -\/ begin);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00514}00514 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00515}00515 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00524}00524 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00525}\mbox{\hyperlink{namespacekblib_a45b776be68227a2b794c1345a3101df7}{00525}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a5cf3311b51778825d242cc19ceacc619}{find\_last\_in\_if}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00526}00526     ForwardIt begin, EndIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00527}00527     UnaryPredicate pred) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *begin)))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00528}00528     -\/> \textcolor{keywordtype}{size\_t} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00529}00529    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_af9e250fffa2922e623baa08aa8994f54}{to\_unsigned}}(\mbox{\hyperlink{namespacekblib_afdfe60b4f1096a9f60d07cdfb4b5e427}{kblib::find\_last\_if}}(begin, end, pred) -\/ begin);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00530}00530 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00540}00540 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00541}\mbox{\hyperlink{namespacekblib_a9b56a7bab2714ec861e909a930030cb6}{00541}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a7e88ca2c2fc0f9ee0a4731224ba4e0e4}{find\_last\_in\_if\_not}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00542}00542     ForwardIt begin, EndIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00543}00543     UnaryPredicate pred) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *begin)))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00544}00544     -\/> \textcolor{keywordtype}{size\_t} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00545}00545    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_af9e250fffa2922e623baa08aa8994f54}{to\_unsigned}}(\mbox{\hyperlink{namespacekblib_a1782641d7170a2ef57145e460fe059be}{kblib::find\_last\_if\_not}}(begin, end, pred) -\/ begin);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00546}00546 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00547}00547 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00557}00557 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00558}00558 \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00559}\mbox{\hyperlink{namespacekblib_a4b840bb625a22f5dfd674050892d3be1}{00559}} \mbox{\hyperlink{namespacekblib_a4b840bb625a22f5dfd674050892d3be1}{find\_in}}(\textcolor{keyword}{const} Container\& c, \textcolor{keyword}{const} T\& value) \textcolor{keyword}{noexcept}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00560}00560     \textcolor{keyword}{noexcept}(*std::declval<iterator\_type\_for\_t<const Container>\&>() == value))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00561}00561     -\/> \textcolor{keywordtype}{size\_t} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00562}00562    \textcolor{keyword}{using }std::begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00563}00563    \textcolor{keyword}{using }std::end;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00564}00564    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_af9e250fffa2922e623baa08aa8994f54}{to\_unsigned}}(\mbox{\hyperlink{namespacekblib_abc7f2ec97efdee8640fe38e73fe1fdad}{kblib::find}}(begin(c), end(c), value) -\/ begin(c));}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00565}00565 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00566}00566 \textcolor{preprocessor}{\#if 0}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00567}00567 \textcolor{keyword}{template}<\textcolor{keyword}{typename} ExecutionPolicy, \textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00568}00568 \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a4b840bb625a22f5dfd674050892d3be1}{find\_in}}(ExecutionPolicy\&\& policy,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00569}00569                                          \textcolor{keyword}{const} Container\& c, \textcolor{keyword}{const} T\& v) -\/> \textcolor{keywordtype}{size\_t} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00570}00570   \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_af9e250fffa2922e623baa08aa8994f54}{to\_unsigned}}(\mbox{\hyperlink{namespacekblib_a7cb44e374b0d5edb7ebce7e1a4e9862d}{std::find}}(policy, std::begin(c), std::end(c), v) -\/ std::begin(c));}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00571}00571 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00572}00572 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00573}00573 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00584}00584 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00585}\mbox{\hyperlink{namespacekblib_ab9d81bc7ce57c24888b9eebce31b596c}{00585}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ab9d81bc7ce57c24888b9eebce31b596c}{find\_in\_if}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00586}00586     \textcolor{keyword}{const} Container\& c,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00587}00587     UnaryPredicate}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00588}00588         pred) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00589}00589                                               *std::declval<\mbox{\hyperlink{namespacekblib_a50228da6d1f395258a03db48257305d0}{iterator\_type\_for\_t}}<}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00590}00590                                                   \textcolor{keyword}{const} Container>\&>())))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00591}00591     -\/> \textcolor{keywordtype}{size\_t} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00592}00592    \textcolor{keyword}{using }std::begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00593}00593    \textcolor{keyword}{using }std::end;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00594}00594    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_af9e250fffa2922e623baa08aa8994f54}{to\_unsigned}}(\mbox{\hyperlink{namespacekblib_a4b49eacc73a9295677cb08d9b7892ff6}{kblib::find\_if}}(begin(c), end(c), pred) -\/ begin(c));}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00595}00595 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00606}00606 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00607}\mbox{\hyperlink{namespacekblib_ad66766d83405b85f422894329c1b0762}{00607}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ad66766d83405b85f422894329c1b0762}{find\_in\_if\_not}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00608}00608     \textcolor{keyword}{const} Container\& c,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00609}00609     UnaryPredicate}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00610}00610         pred) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00611}00611                                               *std::declval<\mbox{\hyperlink{namespacekblib_a50228da6d1f395258a03db48257305d0}{iterator\_type\_for\_t}}<}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00612}00612                                                   \textcolor{keyword}{const} Container>\&>())))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00613}00613     -\/> \textcolor{keywordtype}{size\_t} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00614}00614    \textcolor{keyword}{using }std::begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00615}00615    \textcolor{keyword}{using }std::end;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00616}00616    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_af9e250fffa2922e623baa08aa8994f54}{to\_unsigned}}(\mbox{\hyperlink{namespacekblib_ac30ce90c5b10639c0243952248897b51}{kblib::find\_if\_not}}(begin(c), end(c), pred) -\/ begin(c));}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00617}00617 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00618}00618 \textcolor{preprocessor}{\#if 0}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00619}00619 \textcolor{keyword}{template}<\textcolor{keyword}{typename} ExecutionPolicy, \textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00620}00620 \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ab9d81bc7ce57c24888b9eebce31b596c}{find\_in\_if}}(ExecutionPolicy\&\& policy,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00621}00621                                             \textcolor{keyword}{const} Container\& c,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00622}00622                                             UnaryPredicate p) -\/> \textcolor{keywordtype}{size\_t} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00623}00623   \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a4b49eacc73a9295677cb08d9b7892ff6}{std::find\_if}}(policy, std::begin(c), std::end(c), p) -\/ std::begin(c);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00624}00624 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00625}00625 \textcolor{keyword}{template}<\textcolor{keyword}{typename} ExecutionPolicy, \textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00626}00626 \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ad66766d83405b85f422894329c1b0762}{find\_in\_if\_not}}(ExecutionPolicy\&\& policy,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00627}00627                                                 \textcolor{keyword}{const} Container\& c,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00628}00628                                                 UnaryPredicate p) -\/> \textcolor{keywordtype}{size\_t} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00629}00629   \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_ac30ce90c5b10639c0243952248897b51}{std::find\_if\_not}}(policy, std::begin(c), std::end(c), p)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00630}00630         -\/ std::begin(c);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00631}00631 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00632}00632 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00633}00633 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00643}00643 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00644}00644 \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00645}\mbox{\hyperlink{namespacekblib_a01ea69026c0c1b4403fd1f9e37bdf104}{00645}} \mbox{\hyperlink{namespacekblib_a01ea69026c0c1b4403fd1f9e37bdf104}{find\_last\_in}}(\textcolor{keyword}{const} Container\& c, \textcolor{keyword}{const} T\& value) \textcolor{keyword}{noexcept}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00646}00646     \textcolor{keyword}{noexcept}(*std::declval<iterator\_type\_for\_t<const Container>\&>() == value))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00647}00647     -\/> \textcolor{keywordtype}{size\_t} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00648}00648    \textcolor{keyword}{using }std::begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00649}00649    \textcolor{keyword}{using }std::end;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00650}00650    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_af9e250fffa2922e623baa08aa8994f54}{to\_unsigned}}(\mbox{\hyperlink{namespacekblib_a985430339c0a2e1100d0c77faa47806f}{kblib::find\_last}}(begin(c), end(c), value) -\/ begin(c));}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00651}00651 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00652}00652 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00663}00663 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00664}\mbox{\hyperlink{namespacekblib_a5cf3311b51778825d242cc19ceacc619}{00664}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a5cf3311b51778825d242cc19ceacc619}{find\_last\_in\_if}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00665}00665     \textcolor{keyword}{const} Container\& c,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00666}00666     UnaryPredicate}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00667}00667         pred) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00668}00668                                               *std::declval<\mbox{\hyperlink{namespacekblib_a50228da6d1f395258a03db48257305d0}{iterator\_type\_for\_t}}<}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00669}00669                                                   \textcolor{keyword}{const} Container>\&>())))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00670}00670     -\/> \textcolor{keywordtype}{size\_t} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00671}00671    \textcolor{keyword}{using }std::begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00672}00672    \textcolor{keyword}{using }std::end;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00673}00673    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_af9e250fffa2922e623baa08aa8994f54}{to\_unsigned}}(\mbox{\hyperlink{namespacekblib_afdfe60b4f1096a9f60d07cdfb4b5e427}{kblib::find\_last\_if}}(begin(c), end(c), pred) -\/ begin(c));}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00674}00674 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00685}00685 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00686}\mbox{\hyperlink{namespacekblib_a7e88ca2c2fc0f9ee0a4731224ba4e0e4}{00686}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a7e88ca2c2fc0f9ee0a4731224ba4e0e4}{find\_last\_in\_if\_not}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00687}00687     \textcolor{keyword}{const} Container\& c,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00688}00688     UnaryPredicate}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00689}00689         pred) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00690}00690                                               *std::declval<\mbox{\hyperlink{namespacekblib_a50228da6d1f395258a03db48257305d0}{iterator\_type\_for\_t}}<}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00691}00691                                                   \textcolor{keyword}{const} Container>\&>())))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00692}00692     -\/> \textcolor{keywordtype}{size\_t} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00693}00693    \textcolor{keyword}{using }std::begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00694}00694    \textcolor{keyword}{using }std::end;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00695}00695    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_af9e250fffa2922e623baa08aa8994f54}{to\_unsigned}}(\mbox{\hyperlink{namespacekblib_a1782641d7170a2ef57145e460fe059be}{kblib::find\_last\_if\_not}}(begin(c), end(c), pred)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00696}00696                       -\/ begin(c));}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00697}00697 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00698}00698 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00699}00699 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt1, \textcolor{keyword}{typename} EndIt1, \textcolor{keyword}{typename} InputIt2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00700}00700           \textcolor{keyword}{typename} BinaryPredicate = std::equal\_to<>>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00701}\mbox{\hyperlink{namespacekblib_a85ee751e6068e1e86e93ef1cb34f2d1f}{00701}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ae8e1b4d2193bbc1a7bd04aca85cdfe36}{find\_match}}(InputIt1 begin1, EndIt1 end1,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00702}00702                                           InputIt2 begin2, BinaryPredicate cmp)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00703}00703     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_input\_iterator<InputIt1>::value}}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00704}00704                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\_input\_iterator<InputIt2>::value}}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00705}00705                        and \mbox{\hyperlink{structkblib_1_1fakestd_1_1is__invocable}{is\_invocable}}<BinaryPredicate, \textcolor{keyword}{decltype}(*begin1),}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00706}00706                                         \textcolor{keyword}{decltype}(*begin2)>::value,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00707}00707                    std::pair<InputIt1, InputIt2>> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00708}00708    \textcolor{keywordflow}{while} (begin1 != end1) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00709}00709       \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(cmp, *begin1++, *begin2++)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00710}00710          \textcolor{keywordflow}{return} std::make\_pair(begin1, begin2);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00711}00711       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00712}00712    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00713}00713    \textcolor{keywordflow}{return} std::make\_pair(begin1, begin2);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00714}00714 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00715}00715 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt1, \textcolor{keyword}{typename} EndIt1, \textcolor{keyword}{typename} InputIt2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00716}00716           \textcolor{keyword}{typename} EndIt2, \textcolor{keyword}{typename} BinaryPredicate = std::equal\_to<>>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00717}\mbox{\hyperlink{namespacekblib_ae8e1b4d2193bbc1a7bd04aca85cdfe36}{00717}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ae8e1b4d2193bbc1a7bd04aca85cdfe36}{find\_match}}(InputIt1 begin1, EndIt1 end1,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00718}00718                                           InputIt2 begin2, EndIt2 end2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00719}00719                                           BinaryPredicate cmp)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00720}00720     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_input\_iterator<InputIt1>::value}}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00721}00721                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\_input\_iterator<InputIt2>::value}}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00722}00722                        and \mbox{\hyperlink{structkblib_1_1fakestd_1_1is__invocable}{is\_invocable}}<BinaryPredicate, \textcolor{keyword}{decltype}(*begin1),}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00723}00723                                         \textcolor{keyword}{decltype}(*begin2)>::value,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00724}00724                    std::pair<InputIt1, InputIt2>> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00725}00725    \textcolor{keywordflow}{while} (begin1 != end1 and begin2 != end2) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00726}00726       \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(cmp, *begin1++, *begin2++)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00727}00727          \textcolor{keywordflow}{return} std::make\_pair(begin1, begin2);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00728}00728       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00729}00729    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00730}00730    \textcolor{keywordflow}{return} std::make\_pair(begin1, begin2);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00731}00731 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00732}00732 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00736}00736 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt1, \textcolor{keyword}{typename} EndIt1, \textcolor{keyword}{typename} InputIt2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00737}00737           \textcolor{keyword}{typename} EndIt2, \textcolor{keyword}{typename} BinaryPred>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00738}\mbox{\hyperlink{namespacekblib_a8cdb20ed932413236d054b256207b5e3}{00738}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_aece8787c934d63869d013a3f5e15cc56}{starts\_with}}(InputIt1 begin1, EndIt1 end1,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00739}00739                                            InputIt2 begin2, EndIt2 end2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00740}00740                                            BinaryPred pred)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00741}00741     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t}}<}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00742}00742         (is\_input\_iterator\_v<InputIt1> and is\_input\_iterator\_v<InputIt2>) \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00743}00743         and not (\mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\_random\_access\_iterator\_v}}<}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00744}00744                      InputIt1> and is\_random\_access\_iterator\_v<InputIt2>),}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00745}00745         \textcolor{keywordtype}{bool}> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00746}00746    \textcolor{keywordflow}{while} (begin1 != end1 and begin2 != end2) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00747}00747       \textcolor{keywordflow}{if} (not \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *begin1++, *begin2++)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00748}00748          \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00749}00749       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00750}00750    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00751}00751    \textcolor{keywordflow}{return} begin2 == end2;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00752}00752 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00753}00753 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00757}00757 \textcolor{keyword}{template} <\textcolor{keyword}{typename} RandomAccessIt1, \textcolor{keyword}{typename} RandomAccessIt2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00758}00758           \textcolor{keyword}{typename} BinaryPred = std::equal\_to<>>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00759}\mbox{\hyperlink{namespacekblib_aece8787c934d63869d013a3f5e15cc56}{00759}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_aece8787c934d63869d013a3f5e15cc56}{starts\_with}}(RandomAccessIt1 begin1,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00760}00760                                            RandomAccessIt1 end1,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00761}00761                                            RandomAccessIt2 begin2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00762}00762                                            RandomAccessIt2 end2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00763}00763                                            BinaryPred pred = \{\})}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00764}00764     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t}}<}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00765}00765         \mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\_random\_access\_iterator\_v}}<}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00766}00766             RandomAccessIt1> and is\_random\_access\_iterator\_v<RandomAccessIt2>,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00767}00767         \textcolor{keywordtype}{bool}> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00768}00768    \textcolor{keywordflow}{if} (end2 -\/ begin2 > end1 -\/ begin1) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00769}00769       \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00770}00770    \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00771}00771       \textcolor{keyword}{auto} N = end2 -\/ begin2;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00772}00772       \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_afbec3807c1be9d0aea88c620d673823c}{kblib::equal}}(begin1, begin1 + N, begin2, pred);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00773}00773    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00774}00774 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00775}00775 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00779}00779 \textcolor{keyword}{template} <\textcolor{keyword}{typename} BidirIt1, \textcolor{keyword}{typename} BidirIt2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00780}00780           \textcolor{keyword}{typename} BinaryPred = std::equal\_to<>>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00781}\mbox{\hyperlink{namespacekblib_a86b688283b8d950e84631a29f2351c77}{00781}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a72257d3086cc368c6314f8013331915e}{ends\_with}}(BidirIt1 begin1, BidirIt1 end1,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00782}00782                                          BidirIt2 begin2, BidirIt2 end2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00783}00783                                          BinaryPred pred = \{\})}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00784}00784     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t}}<}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00785}00785         (is\_bidirectional\_iterator\_v<BidirIt1>      \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00786}00786          and is\_bidirectional\_iterator\_v<BidirIt2>) \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00787}00787         and not (\mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\_random\_access\_iterator\_v}}<}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00788}00788                      BidirIt1> and is\_random\_access\_iterator\_v<BidirIt2>),}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00789}00789         \textcolor{keywordtype}{bool}> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00790}00790    \textcolor{keywordflow}{while} (begin1 != end1 and begin2 != end2) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00791}00791       \textcolor{keywordflow}{if} (not \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *-\/-\/end1, *-\/-\/end2)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00792}00792          \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00793}00793       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00794}00794    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00795}00795    \textcolor{keywordflow}{return} begin2 == end2;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00796}00796 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00797}00797 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00801}00801 \textcolor{keyword}{template} <\textcolor{keyword}{typename} RandomAccessIt1, \textcolor{keyword}{typename} RandomAccessIt2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00802}00802           \textcolor{keyword}{typename} BinaryPred = std::equal\_to<>>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00803}\mbox{\hyperlink{namespacekblib_a72257d3086cc368c6314f8013331915e}{00803}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a72257d3086cc368c6314f8013331915e}{ends\_with}}(RandomAccessIt1 begin1,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00804}00804                                          RandomAccessIt1 end1,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00805}00805                                          RandomAccessIt2 begin2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00806}00806                                          RandomAccessIt2 end2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00807}00807                                          BinaryPred pred = \{\})}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00808}00808     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t}}<}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00809}00809         \mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\_random\_access\_iterator\_v}}<}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00810}00810             RandomAccessIt1> and is\_random\_access\_iterator\_v<RandomAccessIt2>,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00811}00811         \textcolor{keywordtype}{bool}> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00812}00812    \textcolor{keywordflow}{if} (end2 -\/ begin2 > end1 -\/ begin1) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00813}00813       \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00814}00814    \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00815}00815       \textcolor{keyword}{auto} N = end2 -\/ begin2;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00816}00816       \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_afbec3807c1be9d0aea88c620d673823c}{kblib::equal}}(end1 -\/ N, end1, begin2, pred);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00817}00817    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00818}00818 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00819}00819 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00820}00820 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} T, \textcolor{keyword}{typename} UnaryTransform>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00821}\mbox{\hyperlink{namespacekblib_a19c27b7a705228b485f3eec2a0605ba6}{00821}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a243dd4c94b862837cbcb3a21fc7c7850}{first\_result}}(InputIt begin, EndIt end, T def,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00822}00822                                             UnaryTransform op)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00823}00823     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_input\_iterator<InputIt>::value}},}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00824}00824                    \mbox{\hyperlink{namespacekblib_a9dcf2233bc360ff26fbbf82d98cdc64d}{std::decay\_t}}<\textcolor{keyword}{decltype}(op(*begin))>> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00825}00825    \textcolor{keywordflow}{for} (; begin != end; ++begin) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00826}00826       \textcolor{keyword}{auto} cur = op(*begin);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00827}00827       \textcolor{keywordflow}{if} (cur != def) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00828}00828          \textcolor{keywordflow}{return} cur;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00829}00829       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00830}00830    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00831}00831    \textcolor{keywordflow}{return} def;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00832}00832 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00833}00833 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt1, \textcolor{keyword}{typename} EndIt1, \textcolor{keyword}{typename} InputIt2, \textcolor{keyword}{typename} T,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00834}00834           \textcolor{keyword}{typename} BinaryTransform>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00835}\mbox{\hyperlink{namespacekblib_a303620c746944b847de94534da396cd0}{00835}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a243dd4c94b862837cbcb3a21fc7c7850}{first\_result}}(InputIt1 begin1, EndIt1 end1,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00836}00836                                             InputIt2 begin2, T def,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00837}00837                                             BinaryTransform op)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00838}00838     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_input\_iterator<InputIt1>::value}}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00839}00839                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\_input\_iterator<InputIt2>::value}},}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00840}00840                    \mbox{\hyperlink{namespacekblib_a9dcf2233bc360ff26fbbf82d98cdc64d}{std::decay\_t}}<\textcolor{keyword}{decltype}(op(*begin1, *begin2))>> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00841}00841    \textcolor{keywordflow}{for} (; begin1 != end1; ++begin1, ++begin2) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00842}00842       \textcolor{keyword}{auto} cur = op(*begin1, *begin2);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00843}00843       \textcolor{keywordflow}{if} (cur != def) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00844}00844          \textcolor{keywordflow}{return} cur;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00845}00845       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00846}00846    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00847}00847    \textcolor{keywordflow}{return} def;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00848}00848 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00849}00849 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt1, \textcolor{keyword}{typename} EndIt1, \textcolor{keyword}{typename} InputIt2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00850}00850           \textcolor{keyword}{typename} EndIt2, \textcolor{keyword}{typename} T, \textcolor{keyword}{typename} BinaryTransform>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00851}\mbox{\hyperlink{namespacekblib_a243dd4c94b862837cbcb3a21fc7c7850}{00851}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a243dd4c94b862837cbcb3a21fc7c7850}{first\_result}}(InputIt1 begin1, EndIt1 end1,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00852}00852                                             InputIt2 begin2, EndIt2 end2, T def,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00853}00853                                             BinaryTransform op)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00854}00854     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_input\_iterator<InputIt1>::value}}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00855}00855                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\_input\_iterator<InputIt2>::value}},}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00856}00856                    \mbox{\hyperlink{namespacekblib_a9dcf2233bc360ff26fbbf82d98cdc64d}{std::decay\_t}}<\textcolor{keyword}{decltype}(op(*begin1, *begin2))>> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00857}00857    \textcolor{keywordflow}{for} (; begin1 != end1 and begin2 != end2; ++begin1, ++begin2) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00858}00858       \textcolor{keyword}{auto} cur = op(*begin1, *begin2);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00859}00859       \textcolor{keywordflow}{if} (cur != def) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00860}00860          \textcolor{keywordflow}{return} cur;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00861}00861       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00862}00862    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00863}00863    \textcolor{keywordflow}{return} def;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00864}00864 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00865}00865 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00866}00866 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} T, \textcolor{keyword}{typename} UnaryTransform,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00867}00867           \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00868}\mbox{\hyperlink{namespacekblib_a50dd5af1197cf9f384b53fe0ea30eaf8}{00868}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a416854a4e20de3e66dc94a591b8fd709}{first\_result\_if}}(InputIt begin, EndIt end, T def,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00869}00869                                                UnaryTransform op,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00870}00870                                                UnaryPredicate ch)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00871}00871     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_input\_iterator<InputIt>::value}}, \textcolor{keyword}{decltype}(op(*begin))> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00872}00872    \textcolor{keywordflow}{for} (; begin != end; ++begin) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00873}00873       \textcolor{keywordflow}{if} (ch(*begin)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00874}00874          \textcolor{keywordflow}{return} op(*begin);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00875}00875       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00876}00876    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00877}00877    \textcolor{keywordflow}{return} def;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00878}00878 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00879}00879 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt1, \textcolor{keyword}{typename} EndIt1, \textcolor{keyword}{typename} InputIt2, \textcolor{keyword}{typename} T,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00880}00880           \textcolor{keyword}{typename} BinaryTransform, \textcolor{keyword}{typename} BinaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00881}\mbox{\hyperlink{namespacekblib_afb43a77bbb2f42381d1c241d96fd01ba}{00881}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a416854a4e20de3e66dc94a591b8fd709}{first\_result\_if}}(InputIt1 begin1, EndIt1 end1,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00882}00882                                                InputIt2 begin2, T def,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00883}00883                                                BinaryTransform op,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00884}00884                                                BinaryPredicate ch)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00885}00885     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_input\_iterator<InputIt1>::value}}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00886}00886                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\_input\_iterator<InputIt2>::value}},}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00887}00887                    \textcolor{keyword}{decltype}(op(*begin1, *begin2))> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00888}00888    \textcolor{keywordflow}{for} (; begin1 != end1; ++begin1, ++begin2) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00889}00889       \textcolor{keywordflow}{if} (ch(*begin1, *begin2)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00890}00890          \textcolor{keywordflow}{return} op(*begin1, *begin2);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00891}00891       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00892}00892    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00893}00893    \textcolor{keywordflow}{return} def;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00894}00894 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00895}00895 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt1, \textcolor{keyword}{typename} EndIt1, \textcolor{keyword}{typename} InputIt2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00896}00896           \textcolor{keyword}{typename} EndIt2, \textcolor{keyword}{typename} T, \textcolor{keyword}{typename} BinaryTransform,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00897}00897           \textcolor{keyword}{typename} BinaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00898}\mbox{\hyperlink{namespacekblib_a416854a4e20de3e66dc94a591b8fd709}{00898}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a416854a4e20de3e66dc94a591b8fd709}{first\_result\_if}}(InputIt1 begin1, EndIt1 end1,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00899}00899                                                InputIt2 begin2, EndIt2 end2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00900}00900                                                T def, BinaryTransform op,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00901}00901                                                BinaryPredicate ch)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00902}00902     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_input\_iterator<InputIt1>::value}}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00903}00903                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\_input\_iterator<InputIt2>::value}},}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00904}00904                    \textcolor{keyword}{decltype}(op(*begin1, *begin2))> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00905}00905    \textcolor{keywordflow}{for} (; begin1 != end1 and begin2 != end2; ++begin1, ++begin2) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00906}00906       \textcolor{keywordflow}{if} (ch(*begin1, *begin2)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00907}00907          \textcolor{keywordflow}{return} op(*begin1, *begin2);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00908}00908       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00909}00909    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00910}00910    \textcolor{keywordflow}{return} def;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00911}00911 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00912}00912 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00913}00913 \textcolor{preprocessor}{\#if KBLIB\_USE\_CXX17}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00914}00914 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00915}\mbox{\hyperlink{structkblib_1_1is__optional}{00915}} \textcolor{keyword}{struct }\mbox{\hyperlink{structkblib_1_1is__optional}{is\_optional}} : std::false\_type \{\};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00916}00916 \textcolor{keyword}{template} <\textcolor{keyword}{typename} U>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00917}\mbox{\hyperlink{structkblib_1_1is__optional_3_01std_1_1optional_3_01_u_01_4_01_4}{00917}} \textcolor{keyword}{struct }\mbox{\hyperlink{structkblib_1_1is__optional}{is\_optional}}<\mbox{\hyperlink{namespacestd}{std}}::optional<U>> : std::true\_type \{\};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00918}00918 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00919}00919 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} T, \textcolor{keyword}{typename} UnaryTransform>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00920}\mbox{\hyperlink{namespacekblib_aedb8bdb7d08d66f5896e94ea33e93ebb}{00920}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a726214edec4457179f1a8261c9987a28}{first\_result\_opt}}(InputIt begin, EndIt end, T def,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00921}00921                                                 UnaryTransform op)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00922}00922     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_input\_iterator<InputIt>::value}},}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00923}00923                    \mbox{\hyperlink{namespacekblib_a9dcf2233bc360ff26fbbf82d98cdc64d}{std::decay\_t}}<\textcolor{keyword}{decltype}(op(*begin))>> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00924}00924    \textcolor{keywordflow}{for} (; begin != end; ++begin) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00925}00925       \textcolor{keyword}{auto} cur = op(*begin);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00926}00926       \textcolor{keywordflow}{if} (cur) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00927}00927          \textcolor{keywordflow}{return} cur;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00928}00928       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00929}00929    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00930}00930    \textcolor{keywordflow}{return} def;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00931}00931 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00932}00932 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt1, \textcolor{keyword}{typename} EndIt1, \textcolor{keyword}{typename} InputIt2, \textcolor{keyword}{typename} T,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00933}00933           \textcolor{keyword}{typename} BinaryTransform>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00934}\mbox{\hyperlink{namespacekblib_ae59131730a066402fc31c3ace96fcc59}{00934}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a726214edec4457179f1a8261c9987a28}{first\_result\_opt}}(InputIt1 begin1, EndIt1 end1,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00935}00935                                                 InputIt2 begin2, T def,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00936}00936                                                 BinaryTransform op)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00937}00937     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_input\_iterator<InputIt1>::value}}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00938}00938                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\_input\_iterator<InputIt2>::value}},}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00939}00939                    \mbox{\hyperlink{namespacekblib_a9dcf2233bc360ff26fbbf82d98cdc64d}{std::decay\_t}}<\textcolor{keyword}{decltype}(op(*begin1, *begin2))>> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00940}00940    \textcolor{keywordflow}{for} (; begin1 != end1; ++begin1, ++begin2) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00941}00941       \textcolor{keyword}{auto} cur = op(*begin1, *begin2);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00942}00942       \textcolor{keywordflow}{if} (cur) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00943}00943          \textcolor{keywordflow}{return} cur;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00944}00944       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00945}00945    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00946}00946    \textcolor{keywordflow}{return} def;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00947}00947 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00948}00948 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt1, \textcolor{keyword}{typename} EndIt1, \textcolor{keyword}{typename} InputIt2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00949}00949           \textcolor{keyword}{typename} EndIt2, \textcolor{keyword}{typename} T, \textcolor{keyword}{typename} BinaryTransform>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00950}\mbox{\hyperlink{namespacekblib_a726214edec4457179f1a8261c9987a28}{00950}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a726214edec4457179f1a8261c9987a28}{first\_result\_opt}}(InputIt1 begin1, EndIt1 end1,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00951}00951                                                 InputIt2 begin2, EndIt2 end2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00952}00952                                                 T def, BinaryTransform op)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00953}00953     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_input\_iterator<InputIt1>::value}}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00954}00954                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\_input\_iterator<InputIt2>::value}},}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00955}00955                    \mbox{\hyperlink{namespacekblib_a9dcf2233bc360ff26fbbf82d98cdc64d}{std::decay\_t}}<\textcolor{keyword}{decltype}(op(*begin1, *begin2))>> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00956}00956    \textcolor{keywordflow}{for} (; begin1 != end1 and begin2 != end2; ++begin1, ++begin2) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00957}00957       \textcolor{keyword}{auto} cur = op(*begin1, *begin2);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00958}00958       \textcolor{keywordflow}{if} (cur) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00959}00959          \textcolor{keywordflow}{return} cur;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00960}00960       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00961}00961    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00962}00962    \textcolor{keywordflow}{return} def;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00963}00963 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00964}00964 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00965}00965 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00969}00969 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00970}\mbox{\hyperlink{namespacekblib_ab437bea5ac232c0a681f8bb1d3754170}{00970}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a3a1a48159ee73f9c98ad2665c3fd4079}{all\_of}}(InputIt begin, InputIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00971}00971                                       UnaryPredicate pred)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00972}00972     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_input\_iterator<InputIt>::value}}, \textcolor{keywordtype}{bool}> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00973}00973    \textcolor{keywordflow}{for} (; begin != end; ++begin) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00974}00974       \textcolor{keywordflow}{if} (not \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *begin)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00975}00975          \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00976}00976       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00977}00977    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00978}00978    \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00979}00979 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00983}00983 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Range, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00984}\mbox{\hyperlink{namespacekblib_a3a1a48159ee73f9c98ad2665c3fd4079}{00984}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a3a1a48159ee73f9c98ad2665c3fd4079}{all\_of}}(Range\&\& rng, UnaryPredicate pred)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00985}00985     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_iterable<Range>::value}}, \textcolor{keywordtype}{bool}> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00986}00986    \textcolor{keywordflow}{for} (\textcolor{keyword}{auto}\&\& el : std::forward<Range>(rng)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00987}00987       \textcolor{keywordflow}{if} (not \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, \textcolor{keyword}{static\_cast<}decltype(el)\textcolor{keyword}{>}(el))) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00988}00988          \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00989}00989       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00990}00990    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00991}00991    \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00992}00992 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00996}00996 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00997}\mbox{\hyperlink{namespacekblib_aad79cff7fa01a4ed3d85b83b419cab08}{00997}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ae58938274f29202b1a8c9b07f98ed912}{none\_of}}(InputIt begin, InputIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00998}00998                                        UnaryPredicate pred)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l00999}00999     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_input\_iterator<InputIt>::value}}, \textcolor{keywordtype}{bool}> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01000}01000    \textcolor{keywordflow}{for} (; begin != end; ++begin) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01001}01001       \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *begin)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01002}01002          \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01003}01003       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01004}01004    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01005}01005    \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01006}01006 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01010}01010 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Range, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01011}\mbox{\hyperlink{namespacekblib_ae58938274f29202b1a8c9b07f98ed912}{01011}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ae58938274f29202b1a8c9b07f98ed912}{none\_of}}(Range\&\& rng, UnaryPredicate pred)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01012}01012     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_iterable<Range>::value}}, \textcolor{keywordtype}{bool}> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01013}01013    \textcolor{keywordflow}{for} (\textcolor{keyword}{auto}\&\& el : std::forward<Range>(rng)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01014}01014       \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, \textcolor{keyword}{static\_cast<}decltype(el)\textcolor{keyword}{>}(el))) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01015}01015          \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01016}01016       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01017}01017    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01018}01018    \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01019}01019 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01023}01023 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01024}\mbox{\hyperlink{namespacekblib_a2696df0185d20ec1445d22247e259ab1}{01024}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a16a5842f4404c27f10371190be51bf49}{any\_of}}(InputIt begin, InputIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01025}01025                                       UnaryPredicate pred)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01026}01026     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_input\_iterator<InputIt>::value}}, \textcolor{keywordtype}{bool}> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01027}01027    \textcolor{keywordflow}{for} (; begin != end; ++begin) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01028}01028       \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *begin)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01029}01029          \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01030}01030       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01031}01031    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01032}01032    \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01033}01033 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01037}01037 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Range, \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01038}\mbox{\hyperlink{namespacekblib_a16a5842f4404c27f10371190be51bf49}{01038}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a16a5842f4404c27f10371190be51bf49}{any\_of}}(Range\&\& rng, UnaryPredicate pred)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01039}01039     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_iterable<Range>::value}}, \textcolor{keywordtype}{bool}> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01040}01040    \textcolor{keywordflow}{for} (\textcolor{keyword}{auto}\&\& el : std::forward<Range>(rng)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01041}01041       \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, \textcolor{keyword}{static\_cast<}decltype(el)\textcolor{keyword}{>}(el))) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01042}01042          \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01043}01043       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01044}01044    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01045}01045    \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01046}01046 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01047}01047 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01051}01051 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} Value>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01052}\mbox{\hyperlink{namespacekblib_a049d0a38a218a1d7cf786ea8f01f2073}{01052}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a0188bc62243d7008096fd565fb6b2e83}{contains}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01053}01053     InputIt begin, InputIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01054}01054     \textcolor{keyword}{const} Value\& val) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(*begin == val))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01055}01055     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_input\_iterator<InputIt>::value}}, \textcolor{keywordtype}{bool}> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01056}01056    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a2696df0185d20ec1445d22247e259ab1}{kblib::any\_of}}(begin, end, [\&](\textcolor{keyword}{const} \textcolor{keyword}{auto}\& \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}) \{ \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}} == val; \});}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01057}01057 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01058}01058 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01062}01062 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Set, \textcolor{keyword}{typename} Value>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01063}\mbox{\hyperlink{namespacekblib_a0188bc62243d7008096fd565fb6b2e83}{01063}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a0188bc62243d7008096fd565fb6b2e83}{contains}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01064}01064     \textcolor{keyword}{const} Set\& set,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01065}01065     \textcolor{keyword}{const} Value\&}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01066}01066         val) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(*std::declval<iterator\_type\_for\_t<const Set>\&>()}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01067}01067                                == val))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01068}01068     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t}}<\mbox{\hyperlink{structkblib_1_1is__iterable}{is\_iterable<Set>::value}}, \textcolor{keywordtype}{bool}> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01069}01069    \textcolor{keyword}{using }std::begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01070}01070    \textcolor{keyword}{using }std::end;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01071}01071    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a2696df0185d20ec1445d22247e259ab1}{kblib::any\_of}}(begin(set), end(set),}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01072}01072                         [\&](\textcolor{keyword}{const} \textcolor{keyword}{auto}\& \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}) \{ \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}} == val; \});}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01073}01073 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01074}01074 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01075}01075 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt1, \textcolor{keyword}{typename} InputIt2>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01076}\mbox{\hyperlink{namespacekblib_a906cc73872a93e33b3ce8a3a66319012}{01076}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ab4a3305951b7977f071de23396e980bc}{contains\_any}}(InputIt1 begin, InputIt1 end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01077}01077                                             InputIt2 n\_begin, InputIt2 n\_end)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01078}01078     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_input\_iterator<InputIt1>::value}}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01079}01079                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\_input\_iterator<InputIt2>::value}},}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01080}01080                    \textcolor{keywordtype}{bool}> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01081}01081    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a2696df0185d20ec1445d22247e259ab1}{kblib::any\_of}}(begin, end, [=](\textcolor{keyword}{const} \textcolor{keyword}{auto}\& v) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01082}01082       \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a049d0a38a218a1d7cf786ea8f01f2073}{kblib::contains}}(n\_begin, n\_end, v);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01083}01083    \});}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01084}01084 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01085}01085 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01086}01086 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} Range2>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01087}\mbox{\hyperlink{namespacekblib_a6de3ee39cfc6317455f5035a014d024c}{01087}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ab4a3305951b7977f071de23396e980bc}{contains\_any}}(InputIt begin, InputIt end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01088}01088                                             Range2\&\& needle)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01089}01089     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_input\_iterator<InputIt>::value}}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01090}01090                        and \mbox{\hyperlink{structkblib_1_1is__iterable}{is\_iterable<Range2>::value}},}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01091}01091                    \textcolor{keywordtype}{bool}> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01092}01092    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a2696df0185d20ec1445d22247e259ab1}{kblib::any\_of}}(begin, end, [\&needle](\textcolor{keyword}{const} \textcolor{keyword}{auto}\& v) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01093}01093       \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a049d0a38a218a1d7cf786ea8f01f2073}{kblib::contains}}(needle, v);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01094}01094    \});}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01095}01095 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01096}01096 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01097}01097 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Range1, \textcolor{keyword}{typename} Range2>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01098}\mbox{\hyperlink{namespacekblib_ab4a3305951b7977f071de23396e980bc}{01098}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ab4a3305951b7977f071de23396e980bc}{contains\_any}}(Range1\&\& haystack, Range2\&\& needle)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01099}01099     -\/> \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\_if\_t<is\_iterable<Range1>::value}} and \mbox{\hyperlink{structkblib_1_1is__iterable}{is\_iterable<Range2>::value}},}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01100}01100                    \textcolor{keywordtype}{bool}> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01101}01101    \textcolor{keyword}{using }std::begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01102}01102    \textcolor{keyword}{using }std::end;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01103}01103    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a2696df0185d20ec1445d22247e259ab1}{kblib::any\_of}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01104}01104        begin(haystack), end(haystack),}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01105}01105        [\&needle](\textcolor{keyword}{const} \textcolor{keyword}{auto}\& v) \{ \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a049d0a38a218a1d7cf786ea8f01f2073}{kblib::contains}}(needle, v); \});}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01106}01106 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01107}01107 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01108}01108 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} Compare = std::less<>>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01109}\mbox{\hyperlink{namespacekblib_a85f026b89c516de43393ab0259c1c834}{01109}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a85f026b89c516de43393ab0259c1c834}{max\_element}}(ForwardIt first, EndIt last, Compare comp = \{\})}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01110}01110     -\/> ForwardIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01111}01111    \textcolor{keywordflow}{if} (first == last) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01112}01112       \textcolor{keywordflow}{return} first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01113}01113    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01114}01114 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01115}01115    ForwardIt largest = first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01116}01116    ++first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01117}01117    \textcolor{keywordflow}{for} (; first != last; ++first) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01118}01118       \textcolor{keywordflow}{if} (comp(*largest, *first)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01119}01119          largest = first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01120}01120       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01121}01121    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01122}01122    \textcolor{keywordflow}{return} largest;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01123}01123 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01124}01124 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01144}01144 \textcolor{keyword}{template} <\textcolor{keyword}{typename} SequenceContainer, \textcolor{keyword}{typename} Comp = std::less<>, \textcolor{keyword}{typename} It,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01145}01145           enable\_if\_t<is\_linear\_container\_v<SequenceContainer>, \textcolor{keywordtype}{int}> = 0>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01146}\mbox{\hyperlink{namespacekblib_a774bfbeef759d1bbedb5908f1348591b}{01146}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a774bfbeef759d1bbedb5908f1348591b}{get\_max\_n\_old}}(It first, It last,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01147}01147                                              std::size\_t count, Comp cmp = \{\})}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01148}01148     -\/> SequenceContainer \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01149}01149    \textcolor{keyword}{using }std::begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01150}01150    \textcolor{keyword}{using }std::end;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01151}01151    assert(first + count <= last);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01152}01152    SequenceContainer c\{first, first + count\};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01153}01153    \mbox{\hyperlink{namespacekblib_a5a3199d9020a07ae387f60a6ef61393b}{std::for\_each}}(first + count, last, [\&](\textcolor{keyword}{const} \textcolor{keyword}{auto}\& v) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01154}01154       \textcolor{keyword}{auto}\& min\_v = *std::min\_element(begin(c), end(c), cmp);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01155}01155       \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(cmp, min\_v, v)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01156}01156          min\_v = v;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01157}01157       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01158}01158    \});}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01159}01159    \textcolor{keywordflow}{return} c;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01160}01160 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01161}01161 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01178}01178 \textcolor{keyword}{template} <\textcolor{keyword}{typename} SetlikeContainer, \textcolor{keyword}{typename} Comp = std::less<>, \textcolor{keyword}{typename} It,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01179}01179           enable\_if\_t<is\_setlike\_v<SetlikeContainer>, \textcolor{keywordtype}{int}> = 0>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01180}01180 \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a774bfbeef759d1bbedb5908f1348591b}{get\_max\_n\_old}}(It first, It last,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01181}01181                                              std::size\_t count, Comp cmp = \{\})}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01182}01182     -\/> SetlikeContainer \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01183}01183    \textcolor{keyword}{auto} temp = get\_max\_n\_old<std::vector<key\_type\_setlike\_t<SetlikeContainer>>>(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01184}01184        first, last, count, cmp);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01185}01185    \textcolor{keywordflow}{return} SetlikeContainer\{std::make\_move\_iterator(temp.begin()),}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01186}01186                            std::make\_move\_iterator(temp.end())\};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01187}01187 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01188}01188 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01201}01201 \textcolor{keyword}{template} <\textcolor{keyword}{typename} SequenceContainer, \textcolor{keyword}{typename} Comp = std::less<>, \textcolor{keyword}{typename} It,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01202}01202           enable\_if\_t<is\_linear\_container\_v<SequenceContainer>, \textcolor{keywordtype}{int}> = 0>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01203}\mbox{\hyperlink{namespacekblib_a73a566130ecb9a7b37b0db0952a53404}{01203}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a07a1e3d300beb263772b5fd079e5d029}{get\_max\_n}}(It first, It last, std::size\_t count,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01204}01204                                          Comp cmp = \{\}) -\/> SequenceContainer \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01205}01205    \textcolor{keyword}{using }std::begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01206}01206    \textcolor{keyword}{using }std::end;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01207}01207    SequenceContainer c(count);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01208}01208    std::partial\_sort\_copy(first, last, begin(c), end(c),}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01209}01209                           [\&](\textcolor{keyword}{auto}\&\& \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, \textcolor{keyword}{auto}\&\& b) -\/> \textcolor{keyword}{decltype}(\textcolor{keyword}{auto}) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01210}01210                              \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(cmp,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01211}01211                                                   std::forward<\textcolor{keyword}{decltype}(b)>(b),}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01212}01212                                                   std::forward<\textcolor{keyword}{decltype}(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}})>(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}));}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01213}01213                           \});}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01214}01214    \textcolor{keywordflow}{return} c;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01215}01215 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01216}01216 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01228}01228 \textcolor{keyword}{template} <\textcolor{keyword}{typename} SetlikeContainer, \textcolor{keyword}{typename} Comp = std::less<>, \textcolor{keyword}{typename} It,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01229}01229           enable\_if\_t<is\_setlike\_v<SetlikeContainer>, \textcolor{keywordtype}{int}> = 0>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01230}01230 \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a07a1e3d300beb263772b5fd079e5d029}{get\_max\_n}}(It first, It last, std::size\_t count,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01231}01231                                          Comp cmp = \{\}) -\/> SetlikeContainer \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01232}01232    \textcolor{keyword}{auto} temp = get\_max\_n<std::vector<key\_type\_setlike\_t<SetlikeContainer>>>(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01233}01233        first, last, count, cmp);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01234}01234    \textcolor{keywordflow}{return} SetlikeContainer\{std::make\_move\_iterator(temp.begin()),}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01235}01235                            std::make\_move\_iterator(temp.end())\};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01236}01236 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01237}01237 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01255}01255 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Comp = std::less<>, \textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} OutputIt,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01256}01256           \textcolor{keyword}{typename} Elem = \textcolor{keyword}{typename} std::iterator\_traits<InputIt>::value\_type>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01257}\mbox{\hyperlink{namespacekblib_a07a1e3d300beb263772b5fd079e5d029}{01257}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a07a1e3d300beb263772b5fd079e5d029}{get\_max\_n}}(InputIt first, InputIt last, OutputIt d\_begin,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01258}01258                          std::size\_t count, Comp cmp = \{\})}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01259}01259     -\/> \mbox{\hyperlink{namespacekblib_acdb4473ef9196a18a0e37e05171729f0}{return\_assert\_t}}<is\_output\_iterator\_for<OutputIt, Elem>::value,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01260}01260                        OutputIt> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01261}01261    \textcolor{keyword}{auto} temp = get\_max\_n<std::vector<Elem>>(first, last, count, cmp);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01262}01262    \textcolor{keywordflow}{return} std::move(temp.begin(), temp.end(), d\_begin);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01263}01263 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01264}01264 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01278}01278 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} ForwardIt2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01279}01279           \textcolor{keyword}{typename} BinaryFunction>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01280}\mbox{\hyperlink{namespacekblib_a5a3199d9020a07ae387f60a6ef61393b}{01280}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a5a3199d9020a07ae387f60a6ef61393b}{for\_each}}(ForwardIt first, EndIt last, ForwardIt2 second,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01281}01281                         BinaryFunction f) -\/> BinaryFunction \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01282}01282    \textcolor{keywordflow}{for} (; first != last; (void)++first, (\textcolor{keywordtype}{void})++second) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01283}01283       \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(f, *first, *second);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01284}01284    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01285}01285    \textcolor{keywordflow}{return} std::move(f);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01286}01286 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01287}01287 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01299}01299 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} ForwardIt2, \textcolor{keyword}{typename} Size,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01300}01300           \textcolor{keyword}{typename} BinaryFunction>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01301}\mbox{\hyperlink{namespacekblib_a645d4e1338c54d720c7cb1f8f90a0e59}{01301}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a645d4e1338c54d720c7cb1f8f90a0e59}{for\_each\_n}}(ForwardIt first, Size n, ForwardIt2 second,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01302}01302                           BinaryFunction f)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01303}01303     -\/> std::pair<ForwardIt, ForwardIt2> \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01304}01304    \textcolor{keywordflow}{for} (Size i = 0; i < n; (void)++first, (\textcolor{keywordtype}{void})++second, (void)++i) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01305}01305       \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(f, *first, *second);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01306}01306    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01307}01307    \textcolor{keywordflow}{return} \{first, second\};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01308}01308 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01309}01309 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01321}01321 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} OutputIt>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01322}\mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{01322}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{copy}}(InputIt first, EndIt last, OutputIt out) -\/> OutputIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01323}01323    \textcolor{keywordflow}{while} (first != last) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01324}01324       *out++ = *first++;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01325}01325    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01326}01326    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01327}01327 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01328}01328 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01341}01341 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} OutputIt,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01342}01342           \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01343}\mbox{\hyperlink{namespacekblib_a5e6f2b40f2b5e649d70df34e5bcc03fe}{01343}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a5e6f2b40f2b5e649d70df34e5bcc03fe}{copy\_if}}(InputIt first, EndIt last, OutputIt out,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01344}01344                        UnaryPredicate pred) -\/> OutputIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01345}01345    \textcolor{keywordflow}{while} (first != last) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01346}01346       \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *first)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01347}01347          *out++ = *first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01348}01348       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01349}01349       first++;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01350}01350    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01351}01351    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01352}01352 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01353}01353 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01364}01364 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} Size, \textcolor{keyword}{typename} OutputIt>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01365}\mbox{\hyperlink{namespacekblib_a428621582602281bc8643b3e6830e2d4}{01365}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a428621582602281bc8643b3e6830e2d4}{copy\_n}}(InputIt first, Size count, OutputIt out) -\/> OutputIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01366}01366    \textcolor{keywordflow}{for} (Size i = 0; i < count; ++i) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01367}01367       *out++ = *first++;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01368}01368    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01369}01369    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01370}01370 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01371}01371 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01384}01384 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} Size, \textcolor{keyword}{typename} OutputIt,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01385}01385           \textcolor{keyword}{typename} UnaryPredicate>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01386}\mbox{\hyperlink{namespacekblib_ab3f36a456830c5c88673a6df70828978}{01386}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ab3f36a456830c5c88673a6df70828978}{copy\_n\_if}}(InputIt first, Size count, OutputIt out,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01387}01387                          UnaryPredicate pred) -\/> OutputIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01388}01388    \textcolor{keywordflow}{for} (Size i = 0; i < count; ++i) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01389}01389       \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *first)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01390}01390          *out++ = *first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01391}01391       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01392}01392       ++first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01393}01393    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01394}01394    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01395}01395 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01396}01396 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01411}01411 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} OutputIt,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01412}01412           \textcolor{keyword}{typename} UnaryPredicate, \textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01413}\mbox{\hyperlink{namespacekblib_a3a46a1cf64ac97bdc6b5d7fe0571f38f}{01413}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a3a46a1cf64ac97bdc6b5d7fe0571f38f}{replace\_copy\_if}}(InputIt first, EndIt last, OutputIt out,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01414}01414                                UnaryPredicate pred, \textcolor{keyword}{const} T\& new\_value)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01415}01415     -\/> OutputIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01416}01416    \textcolor{keywordflow}{while} (first != last) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01417}01417       \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *first)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01418}01418          *out = *first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01419}01419       \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01420}01420          *out = new\_value;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01421}01421       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01422}01422       ++first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01423}01423       ++out;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01424}01424    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01425}01425    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01426}01426 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01427}01427 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01442}01442 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} Size, \textcolor{keyword}{typename} OutputIt,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01443}01443           \textcolor{keyword}{typename} UnaryPredicate, \textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01444}\mbox{\hyperlink{namespacekblib_aaabe9f5328918c0b6e44df29782e7ae1}{01444}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_aaabe9f5328918c0b6e44df29782e7ae1}{replace\_copy\_n\_if}}(InputIt first, Size count, OutputIt out,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01445}01445                                  UnaryPredicate pred, \textcolor{keyword}{const} T\& new\_value)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01446}01446     -\/> OutputIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01447}01447    \textcolor{keywordflow}{for} (Size i = 0; i < count; ++i) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01448}01448       \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *first)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01449}01449          *out = *first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01450}01450       \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01451}01451          *out = new\_value;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01452}01452       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01453}01453       ++first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01454}01454       ++out;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01455}01455    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01456}01456    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01457}01457 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01458}01458 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01459}01459 \textcolor{comment}{// TODO(killerbee13): Debug and test search\_replace\_copy}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01460}01460 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt1, \textcolor{keyword}{typename} ForwardIt2, \textcolor{keyword}{typename} ForwardIt3,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01461}01461           \textcolor{keyword}{typename} OutputIt, \textcolor{keyword}{typename} BinaryPredicate = std::equal\_to<>>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01462}\mbox{\hyperlink{namespacekblib_ac237e40dd9be6a60c18b9b520b51e111}{01462}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_abffc089ff2fee6d19613dc39cd47cfb5}{search\_replace\_copy}}(ForwardIt1 h\_begin, ForwardIt1 h\_end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01463}01463                                    ForwardIt2 n\_begin, ForwardIt2 n\_end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01464}01464                                    ForwardIt3 r\_begin, ForwardIt3 r\_end,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01465}01465                                    OutputIt d\_begin,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01466}01466                                    BinaryPredicate Compare = \{\}) -\/> OutputIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01467}01467    \textcolor{keywordflow}{if} (n\_begin == n\_end) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01468}01468       \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{copy}}(h\_begin, h\_end, d\_begin);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01469}01469    \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01470}01470       \textcolor{keyword}{const} \textcolor{keyword}{auto} needle\_length = std::distance(n\_begin, n\_end);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01471}01471       \textcolor{keywordflow}{while} (h\_begin != h\_end) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01472}01472          \textcolor{keyword}{const} \textcolor{keyword}{auto} found}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01473}01473              = std::search(h\_begin, h\_end, n\_begin, n\_end, Compare);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01474}01474          d\_begin = \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{kblib::copy}}(h\_begin, found, d\_begin);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01475}01475          h\_begin = found;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01476}01476          \textcolor{keywordflow}{if} (h\_begin != h\_end) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01477}01477             d\_begin = \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{copy}}(r\_begin, r\_end, d\_begin);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01478}01478             std::advance(h\_begin, needle\_length);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01479}01479          \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01480}01480       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01481}01481       \textcolor{keywordflow}{return} d\_begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01482}01482    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01483}01483 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01484}01484 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01485}01485 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Haystack, \textcolor{keyword}{typename} Needle, \textcolor{keyword}{typename} Replacement,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01486}01486           \textcolor{keyword}{typename} OutputIt, \textcolor{keyword}{typename} BinaryPredicate = std::equal\_to<>>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01487}\mbox{\hyperlink{namespacekblib_abffc089ff2fee6d19613dc39cd47cfb5}{01487}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_abffc089ff2fee6d19613dc39cd47cfb5}{search\_replace\_copy}}(Haystack\&\& haystack, Needle\&\& needle,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01488}01488                                    Replacement\&\& replacement, OutputIt d\_begin,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01489}01489                                    BinaryPredicate compare = \{\}) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01490}01490    \textcolor{keyword}{using }std::begin;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01491}01491    \textcolor{keyword}{using }std::end;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01492}01492    \textcolor{keywordflow}{return} \mbox{\hyperlink{namespacekblib_abffc089ff2fee6d19613dc39cd47cfb5}{search\_replace\_copy}}(begin(haystack), end(haystack),       \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01493}01493                               begin(needle), end(needle),           \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01494}01494                               begin(replacement), end(replacement), \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01495}01495                               d\_begin,                              \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01496}01496                               compare);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01497}01497 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01498}01498 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01508}01508 \textcolor{keyword}{template} <\textcolor{keyword}{class} ForwardIt>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01509}\mbox{\hyperlink{namespacekblib_abe51624618b4a7c9f20e295b8c89bf47}{01509}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_abe51624618b4a7c9f20e295b8c89bf47}{rotate}}(ForwardIt first, ForwardIt n\_first,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01510}01510                       ForwardIt last) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a4aadfdece3872e99551aa812ac3bac27}{swap}}(*first, *first)))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01511}01511     -\/> ForwardIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01512}01512    \textcolor{keywordflow}{if} (first == n\_first)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01513}01513       \textcolor{keywordflow}{return} last;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01514}01514    \textcolor{keywordflow}{if} (n\_first == last)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01515}01515       \textcolor{keywordflow}{return} first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01516}01516 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01517}01517    ForwardIt read = n\_first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01518}01518    ForwardIt write = first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01519}01519    ForwardIt next\_read = first; \textcolor{comment}{// read position for when "{}read"{} hits "{}last"{}}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01520}01520 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01521}01521    \textcolor{keywordflow}{while} (read != last) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01522}01522       \textcolor{keywordflow}{if} (write == next\_read)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01523}01523          next\_read = read; \textcolor{comment}{// track where "{}first"{} went}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01524}01524       \textcolor{comment}{// iter\_swap is not constexpr}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01525}01525       \textcolor{comment}{// std::iter\_swap(write++, read++);}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01526}01526       \mbox{\hyperlink{namespacekblib_a4aadfdece3872e99551aa812ac3bac27}{swap}}(*(write++), *(read++));}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01527}01527    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01528}01528 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01529}01529    \textcolor{comment}{// rotate the remaining sequence into place}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01530}01530    \mbox{\hyperlink{namespacekblib_abe51624618b4a7c9f20e295b8c89bf47}{kblib::rotate}}(write, next\_read, last);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01531}01531    \textcolor{keywordflow}{return} write;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01532}01532 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01533}01533 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01544}01544 \textcolor{keyword}{template} <\textcolor{keyword}{typename} OutputIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} Generator>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01545}\mbox{\hyperlink{namespacekblib_a33f20e37682017226d1d7a7128915ea5}{01545}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a33f20e37682017226d1d7a7128915ea5}{generate}}(OutputIt first, EndIt last,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01546}01546                         Generator g) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(*++first = g()))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01547}01547     -\/> OutputIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01548}01548    \textcolor{keywordflow}{while} (first != last) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01549}01549       *first = g();}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01550}01550       ++first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01551}01551    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01552}01552    \textcolor{keywordflow}{return} first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01553}01553 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01554}01554 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01564}01564 \textcolor{keyword}{template} <\textcolor{keyword}{typename} OutputIt, \textcolor{keyword}{typename} Size, \textcolor{keyword}{typename} Generator>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01565}\mbox{\hyperlink{namespacekblib_a44de39f5ab34ae1bf5b037eb11155caa}{01565}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a44de39f5ab34ae1bf5b037eb11155caa}{generate\_n}}(OutputIt first, Size count,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01566}01566                           Generator g) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(*first++ = g()))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01567}01567     -\/> OutputIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01568}01568    \textcolor{keywordflow}{for} (Size i = 0; i < count; i++) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01569}01569       *first++ = g();}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01570}01570    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01571}01571    \textcolor{keywordflow}{return} first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01572}01572 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01573}01573 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01574}01574 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01575}\mbox{\hyperlink{namespacekblib_a40d0e463984f5ab01f6db106dbad9fb0}{01575}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_aae9af72a825beb17613b2754bbaca9cc}{iota}}(ForwardIt first, ForwardIt last, T value) \textcolor{keyword}{noexcept}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01576}01576     \textcolor{keyword}{noexcept}(*first++ = value) and \textcolor{keyword}{noexcept}(++value)) -\/> \textcolor{keywordtype}{void} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01577}01577    \textcolor{keywordflow}{while} (first != last) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01578}01578       *first++ = value;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01579}01579       ++value;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01580}01580    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01581}01581 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01582}01582 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01583}01583 \textcolor{comment}{// For some reason these long noexcept specifications really trip}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01584}01584 \textcolor{comment}{// up clang-\/format}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01585}01585 \textcolor{comment}{// clang-\/format off}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01586}01586 \textcolor{keyword}{template} <\textcolor{keyword}{typename} ForwardIt, \textcolor{keyword}{typename} T, \textcolor{keyword}{typename} UnaryOperation>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01587}\mbox{\hyperlink{namespacekblib_aae9af72a825beb17613b2754bbaca9cc}{01587}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_aae9af72a825beb17613b2754bbaca9cc}{iota}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01588}01588     ForwardIt first, ForwardIt last, T value,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01589}01589     UnaryOperation unary\_op}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01590}01590    ) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(*first++ = value)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01591}01591               and \textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(unary\_op,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01592}01592                                          std::move(value))))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01593}01593     -\/> \textcolor{keywordtype}{void} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01594}01594    \textcolor{comment}{// clang-\/format on}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01595}01595    \textcolor{keywordflow}{while} (first != last) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01596}01596       *first++ = value;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01597}01597       value = \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(unary\_op, std::move(value));}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01598}01598    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01599}01599 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01600}01600 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01601}01601 \textcolor{comment}{// clang-\/format off}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01602}01602 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename}... Params>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01603}\mbox{\hyperlink{namespacekblib_a00c98fe410dfc13b00832ecf0293eac9}{01603}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a00c98fe410dfc13b00832ecf0293eac9}{call\_each}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01604}01604     InputIt first, EndIt last, Params\&\&... params}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01605}01605    ) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(*first++,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01606}01606                                      std::forward<Params>(params)...)))}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01607}01607     -\/> InputIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01608}01608    \textcolor{comment}{// clang-\/format on}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01609}01609    \textcolor{keywordflow}{while} (first != last) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01610}01610       \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(*first++, std::forward<Params>(params)...);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01611}01611    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01612}01612    \textcolor{keywordflow}{return} first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01613}01613 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01614}01614 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01630}01630 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} OutputIt,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01631}01631           \textcolor{keyword}{typename} UnaryOperation>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01632}\mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{01632}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_aec3f0154a30d5459c15d1984f137644c}{transform}}(InputIt first, EndIt last, OutputIt d\_first,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01633}01633                          UnaryOperation unary\_op) -\/> OutputIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01634}01634    \textcolor{keywordflow}{while} (first != last) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01635}01635       *d\_first++ = \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(unary\_op, *first);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01636}01636       ++first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01637}01637    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01638}01638    \textcolor{keywordflow}{return} d\_first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01639}01639 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01640}01640 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01657}01657 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} InputIt2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01658}01658           \textcolor{keyword}{typename} OutputIt, \textcolor{keyword}{typename} BinaryOperation>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01659}\mbox{\hyperlink{namespacekblib_aec3f0154a30d5459c15d1984f137644c}{01659}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_aec3f0154a30d5459c15d1984f137644c}{transform}}(InputIt first, EndIt last, InputIt first2,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01660}01660                          OutputIt d\_first, BinaryOperation binary\_op)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01661}01661     -\/> OutputIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01662}01662    \textcolor{keywordflow}{while} (first != last) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01663}01663       *d\_first++ = \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(binary\_op, *first, *first2);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01664}01664       ++first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01665}01665       ++first2;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01666}01666    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01667}01667    \textcolor{keywordflow}{return} d\_first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01668}01668 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01669}01669 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01688}01688 \textcolor{keyword}{template} <\textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} EndIt, \textcolor{keyword}{typename} OutputIt,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01689}01689           \textcolor{keyword}{typename} UnaryPredicate, \textcolor{keyword}{typename} UnaryOperation>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01690}\mbox{\hyperlink{namespacekblib_a09ef1e721a1b15383c199c67339aaa10}{01690}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a09ef1e721a1b15383c199c67339aaa10}{transform\_if}}(InputIt first, EndIt last, OutputIt d\_first,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01691}01691                             UnaryPredicate pred, UnaryOperation unary\_op)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01692}01692     -\/> OutputIt \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01693}01693    \textcolor{keywordflow}{while} (first != last) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01694}01694       \textcolor{keywordflow}{if} (\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(pred, *first)) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01695}01695          *d\_first++ = \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib::invoke}}(unary\_op, *first);}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01696}01696       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01697}01697       ++first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01698}01698    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01699}01699    \textcolor{keywordflow}{return} d\_first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01700}01700 \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01701}01701 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01702}\mbox{\hyperlink{namespacekblib_1_1detail__algorithm}{01702}} \textcolor{keyword}{namespace }detail\_algorithm \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01703}01703 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01713}01713    \textcolor{keyword}{template} <\textcolor{keyword}{class} ForwardIt>}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01714}\mbox{\hyperlink{namespacekblib_1_1detail__algorithm_a7e9dcc6ba8db08f7ca672ea9f6f20f5a}{01714}}    \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_1_1detail__algorithm_a7e9dcc6ba8db08f7ca672ea9f6f20f5a}{shift\_backward}}(}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01715}01715        ForwardIt first, ForwardIt n\_first,}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01716}01716        ForwardIt last) \textcolor{keyword}{noexcept}(\textcolor{keyword}{noexcept}(*first = std::move(*first))) -\/> \textcolor{keywordtype}{void} \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01717}01717       \textcolor{keywordflow}{if} (first == n\_first or n\_first == last)}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01718}01718          \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01719}01719 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01720}01720       ForwardIt read = n\_first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01721}01721       ForwardIt write = first;}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01722}01722 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01723}01723       \textcolor{keywordflow}{while} (read != last) \{}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01724}01724          *(write++) = std::move(*(read++));}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01725}01725       \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01726}01726 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01727}01727       \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01728}01728    \}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01729}01729 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01730}01730 \} \textcolor{comment}{// namespace detail\_algorithm}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01731}01731 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01732}01732 \} \textcolor{comment}{// namespace KBLIB\_NS}}
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01733}01733 }
\DoxyCodeLine{\Hypertarget{algorithm_8h_source_l01734}01734 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// ALGORITHM\_H}}

\end{DoxyCode}
