\hypertarget{build_8h_source}{}\doxysection{build.\+h}
\label{build_8h_source}\index{kblib/build.h@{kblib/build.h}}
\mbox{\hyperlink{build_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00001}00001 \textcolor{comment}{/* *****************************************************************************}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00002}00002 \textcolor{comment}{ * kblib is a general utility library for C++14 and C++17, intended to provide}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00003}00003 \textcolor{comment}{ * performant high-\/level abstractions and more expressive ways to do simple}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00004}00004 \textcolor{comment}{ * things.}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00005}00005 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00006}00006 \textcolor{comment}{ * Copyright (c) 2021 killerbee}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00008}00008 \textcolor{comment}{ * This program is free software: you can redistribute it and/or modify}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00009}00009 \textcolor{comment}{ * it under the terms of the GNU General Public License as published by}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00010}00010 \textcolor{comment}{ * the Free Software Foundation, either version 3 of the License, or}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00011}00011 \textcolor{comment}{ * (at your option) any later version.}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00012}00012 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00013}00013 \textcolor{comment}{ * This program is distributed in the hope that it will be useful,}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00014}00014 \textcolor{comment}{ * but WITHOUT ANY WARRANTY; without even the implied warranty of}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00015}00015 \textcolor{comment}{ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00016}00016 \textcolor{comment}{ * GNU General Public License for more details.}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00017}00017 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00018}00018 \textcolor{comment}{ * You should have received a copy of the GNU General Public License}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00019}00019 \textcolor{comment}{ * along with this program.  If not, see <https://www.gnu.org/licenses/>.}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00020}00020 \textcolor{comment}{ * ****************************************************************************/}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00021}00021 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00031}00031 \textcolor{preprocessor}{\#ifndef KBLIB\_BUILD\_H}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00032}00032 \textcolor{preprocessor}{\#define KBLIB\_BUILD\_H}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00033}00033 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00034}00034 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{tdecl_8h}{tdecl.h}}"{}}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00035}00035 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00036}00036 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{algorithm_8h}{algorithm.h}}"{}}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00037}00037 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{fakestd_8h}{fakestd.h}}"{}}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00038}00038 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{iterators_8h}{iterators.h}}"{}}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00039}00039 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{traits_8h}{traits.h}}"{}}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00040}00040 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00041}00041 \textcolor{preprocessor}{\#include <algorithm>}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00042}00042 \textcolor{preprocessor}{\#include <iterator>}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00043}00043 \textcolor{preprocessor}{\#include <numeric>}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00044}00044 \textcolor{preprocessor}{\#include <tuple>}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00045}00045 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00046}00046 \textcolor{preprocessor}{\#if \_\_cplusplus >= 201703L}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00047}00047 \textcolor{preprocessor}{\#  include <optional>}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00048}00048 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00049}00049 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00050}00050 \textcolor{keyword}{namespace }\mbox{\hyperlink{tdecl_8h_a4b5c574c663a392148218cd4410fd7a1}{KBLIB\_NS}} \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00051}00051 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00065}00065 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} UnaryFunction>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00066}\mbox{\hyperlink{namespacekblib_a392972471eeedefaafc0f5154c3a4a32}{00066}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_af103b44450c172da5a091d738b7b1e53}{build}}(InputIt first, InputIt last, UnaryFunction f,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00067}00067                            \textcolor{keyword}{typename} Container::allocator\_type allocator}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00068}00068                            = \textcolor{keyword}{typename} Container::allocator\_type\{\})}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00069}00069     -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00070}00070    Container out(allocator);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00071}00071    \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}(first, last, std::back\_inserter(out), f);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00072}00072    \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{void}\textcolor{keyword}{>}(out.resize(out.size())), out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00073}00073 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00090}00090 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} InputIt2,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00091}00091           \textcolor{keyword}{typename} BinaryFunction>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00092}\mbox{\hyperlink{namespacekblib_ac0df0a7581f417956e3c29ec29f8a0c9}{00092}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_af103b44450c172da5a091d738b7b1e53}{build}}(InputIt first, InputIt last, InputIt2 first2,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00093}00093                            BinaryFunction f,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00094}00094                            \textcolor{keyword}{typename} Container::allocator\_type allocator}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00095}00095                            = \textcolor{keyword}{typename} Container::allocator\_type\{\})}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00096}00096     -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00097}00097    Container out(allocator);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00098}00098    \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}(first, last, first2, std::back\_inserter(out), f);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00099}00099    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00100}00100 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00101}00101 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00119}00119 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Array, \textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} UnaryFunction,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00120}00120           enable\_if\_t<not is\_resizable\_v<Array>, \textcolor{keywordtype}{int}> = 0>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00121}\mbox{\hyperlink{namespacekblib_a33d7779af12cb836b7a07e762c4251ee}{00121}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_af103b44450c172da5a091d738b7b1e53}{build}}(InputIt first, InputIt last, UnaryFunction f)}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00122}00122     -\/> Array \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00123}00123    Array out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00124}00124    \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}(first, last, out.begin(), f);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00125}00125    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00126}00126 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00145}00145 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Array, \textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} InputIt2,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00146}00146           \textcolor{keyword}{typename} BinaryFunction,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00147}00147           enable\_if\_t<not is\_resizable\_v<Array>, \textcolor{keywordtype}{int}> = 0>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00148}\mbox{\hyperlink{namespacekblib_add6c009a3c106ba1528c168dee122c77}{00148}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_af103b44450c172da5a091d738b7b1e53}{build}}(InputIt first, InputIt last, InputIt2 first2,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00149}00149                            BinaryFunction f) -\/> Array \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00150}00150    Array out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00151}00151    \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}(first, last, first2, out.begin(), f);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00152}00152    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00153}00153 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00154}00154 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00167}00167 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} Functor>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00168}\mbox{\hyperlink{namespacekblib_afcdcafb387d1769318df68f2b5598d96}{00168}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_af103b44450c172da5a091d738b7b1e53}{build}}(Functor f, \textcolor{keywordtype}{size\_t} \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}},}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00169}00169                            \textcolor{keyword}{typename} Container::allocator\_type allocator}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00170}00170                            = \textcolor{keyword}{typename} Container::allocator\_type\{\})}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00171}00171     -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00172}00172    Container out(allocator);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00173}00173    \mbox{\hyperlink{namespacekblib_a7035cf97e9bcba5add3b1462ac01a0ed}{try\_reserve}}(out, \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}});}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00174}00174    \mbox{\hyperlink{namespacekblib_a44de39f5ab34ae1bf5b037eb11155caa}{std::generate\_n}}(std::back\_inserter(out), \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}, f);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00175}00175    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00176}00176 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00177}00177 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00193}00193 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Array, \textcolor{keyword}{typename} Functor,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00194}00194           enable\_if\_t<not is\_resizable\_v<Array>, \textcolor{keywordtype}{int}> = 0>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00195}\mbox{\hyperlink{namespacekblib_af103b44450c172da5a091d738b7b1e53}{00195}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_af103b44450c172da5a091d738b7b1e53}{build}}(Functor f,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00196}00196                            \textcolor{keywordtype}{size\_t} \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}} = std::tuple\_size<Array>::value)}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00197}00197     -\/> Array \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00198}00198    Array out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00199}00199    \mbox{\hyperlink{namespacekblib_a44de39f5ab34ae1bf5b037eb11155caa}{std::generate\_n}}(out.begin(), \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}, f);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00200}00200    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00201}00201 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00202}00202 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00203}00203 \textcolor{comment}{// build\_dy: workaround for non-\/allocator-\/aware dynamic containers}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00217}00217 \textcolor{comment}{}\textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} UnaryFunction>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00218}\mbox{\hyperlink{namespacekblib_a7ac67153b0398f6cb4a57690d3d3bad0}{00218}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ae538bfb0085fabd1601825a87bb792b3}{build\_dy}}(InputIt first, InputIt last, UnaryFunction f)}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00219}00219     -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00220}00220    Container out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00221}00221    \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}(first, last, std::back\_inserter(out), f);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00222}00222    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00223}00223 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00240}00240 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} InputIt2,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00241}00241           \textcolor{keyword}{typename} BinaryFunction>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00242}\mbox{\hyperlink{namespacekblib_ae4de9abf1f3ed56dd637e0aeeeb555a3}{00242}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ae538bfb0085fabd1601825a87bb792b3}{build\_dy}}(InputIt first, InputIt last, InputIt2 first2,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00243}00243                               BinaryFunction f) -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00244}00244    Container out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00245}00245    \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}(first, last, first2, std::back\_inserter(out), f);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00246}00246    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00247}00247 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00248}00248 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00259}00259 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} Functor>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00260}\mbox{\hyperlink{namespacekblib_a1958e5a6146a77e469fe8e892a95d550}{00260}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ae538bfb0085fabd1601825a87bb792b3}{build\_dy}}(Functor f, \textcolor{keywordtype}{size\_t} \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}) -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00261}00261    Container out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00262}00262    \mbox{\hyperlink{namespacekblib_a7035cf97e9bcba5add3b1462ac01a0ed}{try\_reserve}}(out, \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}});}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00263}00263    \mbox{\hyperlink{namespacekblib_a44de39f5ab34ae1bf5b037eb11155caa}{std::generate\_n}}(std::back\_inserter(out), \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}, f);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00264}00264    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00265}00265 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00266}00266 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00274}00274 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} Range, \textcolor{keyword}{typename} UnaryFunction,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00275}00275           enable\_if\_t<is\_resizable\_v<Container>, \textcolor{keywordtype}{int}> = 0>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00276}\mbox{\hyperlink{namespacekblib_ae538bfb0085fabd1601825a87bb792b3}{00276}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_ae538bfb0085fabd1601825a87bb792b3}{build\_dy}}(Range\&\& r, UnaryFunction f) -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00277}00277    \textcolor{keyword}{using }std::begin;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00278}00278    \textcolor{keyword}{using }std::end;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00279}00279    Container out(\mbox{\hyperlink{namespacekblib_a0e74aee94f446396c8f8b7bf34b16acb}{kblib::size}}(r));}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00280}00280    \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}(begin(r), end(r), begin(out), std::ref(f));}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00281}00281    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00282}00282 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00283}00283 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00284}00284 \textcolor{preprocessor}{\#if 0}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00285}00285 \textcolor{comment}{// I can't overload on both array vs. dynamic container and execution policy}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00286}00286 \textcolor{comment}{// in any sane way without concepts, so this whole set of functions is cut}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00287}00287 \textcolor{comment}{// because they're less useful than the array overloads.}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00288}00288 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} ExecutionPolicy, \textcolor{keyword}{typename} InputIt,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00289}00289           \textcolor{keyword}{typename} UnaryFunction>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00290}00290 \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00291}00291 \mbox{\hyperlink{namespacekblib_af103b44450c172da5a091d738b7b1e53}{build}}(ExecutionPolicy\&\& policy, InputIt first, InputIt last, UnaryFunction f,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00292}00292       \mbox{\hyperlink{tdecl_8h_a607cffc585fe3bfcb06b63be2948de4a}{KBLIB\_UNUSED}}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00293}00293       \textcolor{keyword}{typename} Container::allocator\_type = \textcolor{keyword}{typename} Container::allocator\_type\{\})}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00294}00294     -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00295}00295    Container out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00296}00296    \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}(policy, first, last, std::back\_inserter(out), f);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00297}00297    \textcolor{keywordflow}{return} \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{void}\textcolor{keyword}{>}(out.resize(out.size())), out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00298}00298 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00299}00299 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} ExecutionPolicy, \textcolor{keyword}{typename} InputIt,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00300}00300           \textcolor{keyword}{typename} InputIt2, \textcolor{keyword}{typename} BinaryFunction>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00301}00301 \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00302}00302 \mbox{\hyperlink{namespacekblib_af103b44450c172da5a091d738b7b1e53}{build}}(ExecutionPolicy\&\& policy, InputIt first, InputIt last, InputIt2 first2,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00303}00303       BinaryFunction f,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00304}00304       \mbox{\hyperlink{tdecl_8h_a607cffc585fe3bfcb06b63be2948de4a}{KBLIB\_UNUSED}}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00305}00305       \textcolor{keyword}{typename} Container::allocator\_type = \textcolor{keyword}{typename} Container::allocator\_type\{\})}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00306}00306     -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00307}00307    Container out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00308}00308    \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}(policy, first, last, first2, std::back\_inserter(out), f);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00309}00309    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00310}00310 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00311}00311 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Array, \textcolor{keyword}{typename} ExecutionPolicy, \textcolor{keyword}{typename} InputIt,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00312}00312           \textcolor{keyword}{typename} UnaryFunction,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00313}00313           \textcolor{keyword}{typename} std::enable\_if<}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00314}00314               std::is\_convertible<typename std::tuple\_size<Array>::value\_type,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00315}00315                                   \textcolor{keywordtype}{size\_t}>::value,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00316}00316               \textcolor{keywordtype}{int}>::type = 0>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00317}00317 \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_af103b44450c172da5a091d738b7b1e53}{build}}(ExecutionPolicy\&\& policy, InputIt first,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00318}00318                            InputIt last, UnaryFunction f) -\/> Array \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00319}00319    Array out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00320}00320    \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}(policy, first, last, out.begin(), f);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00321}00321    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00322}00322 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00323}00323 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Array, \textcolor{keyword}{typename} ExecutionPolicy, \textcolor{keyword}{typename} InputIt,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00324}00324           \textcolor{keyword}{typename} InputIt2, \textcolor{keyword}{typename} BinaryFunction,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00325}00325           \textcolor{keyword}{typename} std::enable\_if<}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00326}00326               std::is\_convertible<typename std::tuple\_size<Array>::value\_type,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00327}00327                                   \textcolor{keywordtype}{size\_t}>::value,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00328}00328               \textcolor{keywordtype}{int}>::type = 0>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00329}00329 \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_af103b44450c172da5a091d738b7b1e53}{build}}(ExecutionPolicy\&\& policy, InputIt first,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00330}00330                            InputIt last, InputIt2 first2, BinaryFunction f)}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00331}00331     -\/> Array \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00332}00332    Array out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00333}00333    \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{std::transform}}(policy, first, last, first2, out.begin(), f);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00334}00334    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00335}00335 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00336}00336 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} ExecutionPolicy, \textcolor{keyword}{typename} Functor>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00337}00337 \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00338}00338 \mbox{\hyperlink{namespacekblib_af103b44450c172da5a091d738b7b1e53}{build}}(ExecutionPolicy\&\& policy, Functor f, \textcolor{keywordtype}{size\_t} \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}},}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00339}00339       [[gnu::unused]]}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00340}00340       \textcolor{keyword}{typename} Container::allocator\_type = \textcolor{keyword}{typename} Container::allocator\_type\{\})}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00341}00341     -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00342}00342    Container out(\mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}});}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00343}00343    \mbox{\hyperlink{namespacekblib_a44de39f5ab34ae1bf5b037eb11155caa}{std::generate\_n}}(policy, out.begin(), \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}, f);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00344}00344    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00345}00345 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00346}00346 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Array, \textcolor{keyword}{typename} ExecutionPolicy, \textcolor{keyword}{typename} Functor,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00347}00347           \textcolor{keyword}{typename} std::enable\_if<}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00348}00348               std::is\_convertible<typename std::tuple\_size<Array>::value\_type,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00349}00349                                   \textcolor{keywordtype}{size\_t}>::value,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00350}00350               \textcolor{keywordtype}{int}>::type = 0>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00351}00351 \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_af103b44450c172da5a091d738b7b1e53}{build}}(ExecutionPolicy\&\& policy, Functor f,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00352}00352                            \textcolor{keywordtype}{size\_t} \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}} = std::tuple\_size<Array>::value)}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00353}00353     -\/> Array \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00354}00354    Array out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00355}00355    \mbox{\hyperlink{namespacekblib_a44de39f5ab34ae1bf5b037eb11155caa}{std::generate\_n}}(policy, out.begin(), \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}, f);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00356}00356    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00357}00357 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00358}00358 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00359}00359 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00360}\mbox{\hyperlink{namespacekblib_1_1detail}{00360}} \textcolor{keyword}{namespace }detail \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00361}00361 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00362}00362    \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00363}\mbox{\hyperlink{structkblib_1_1detail_1_1buildiota__impl_3_01_container_00_01true_01_4}{00363}}    \textcolor{keyword}{struct }\mbox{\hyperlink{structkblib_1_1detail_1_1buildiota__impl}{buildiota\_impl}}<Container, true> \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00364}00364       \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00365}\mbox{\hyperlink{structkblib_1_1detail_1_1buildiota__impl_3_01_container_00_01true_01_4_a4cb03dbda966c2c58f0efbfcbd66f497}{00365}}       \textcolor{keyword}{constexpr} \textcolor{keyword}{static} \textcolor{keyword}{auto} \mbox{\hyperlink{structkblib_1_1detail_1_1buildiota__impl_3_01_container_00_01true_01_4_a4cb03dbda966c2c58f0efbfcbd66f497}{impl}}(std::size\_t count, T \mbox{\hyperlink{structkblib_1_1detail_1_1value}{value}}) -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00366}00366          Container out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00367}00367          \mbox{\hyperlink{namespacekblib_a7035cf97e9bcba5add3b1462ac01a0ed}{try\_reserve}}(out, count);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00368}00368          \textcolor{keywordflow}{while} (count-\/-\/ > 0) \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00369}00369             out.push\_back(\mbox{\hyperlink{structkblib_1_1detail_1_1value}{value}});}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00370}00370             ++\mbox{\hyperlink{structkblib_1_1detail_1_1value}{value}};}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00371}00371          \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00372}00372          \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00373}00373       \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00374}00374       \textcolor{keyword}{template} <\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} I>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00375}\mbox{\hyperlink{structkblib_1_1detail_1_1buildiota__impl_3_01_container_00_01true_01_4_abe8a112f475085389c623697cd39328f}{00375}}       \textcolor{keyword}{constexpr} \textcolor{keyword}{static} \textcolor{keyword}{auto} \mbox{\hyperlink{structkblib_1_1detail_1_1buildiota__impl_3_01_container_00_01true_01_4_abe8a112f475085389c623697cd39328f}{impl}}(std::size\_t count, T \mbox{\hyperlink{structkblib_1_1detail_1_1value}{value}}, I incr)}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00376}00376           -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00377}00377          Container out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00378}00378          \mbox{\hyperlink{namespacekblib_a7035cf97e9bcba5add3b1462ac01a0ed}{try\_reserve}}(out, count);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00379}00379          \textcolor{keywordflow}{while} (count-\/-\/ > 0) \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00380}00380             out.push\_back(\mbox{\hyperlink{structkblib_1_1detail_1_1value}{value}});}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00381}00381             \mbox{\hyperlink{structkblib_1_1detail_1_1value}{value}} += incr;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00382}00382          \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00383}00383          \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00384}00384       \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00385}00385    \};}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00386}00386 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00387}00387    \textcolor{keyword}{template} <\textcolor{keyword}{typename} Array>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00388}\mbox{\hyperlink{structkblib_1_1detail_1_1buildiota__impl_3_01_array_00_01false_01_4}{00388}}    \textcolor{keyword}{struct }\mbox{\hyperlink{structkblib_1_1detail_1_1buildiota__impl}{buildiota\_impl}}<Array, false> \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00389}00389       \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00390}\mbox{\hyperlink{structkblib_1_1detail_1_1buildiota__impl_3_01_array_00_01false_01_4_a57c5b32673564e6fe435fc07c940d60c}{00390}}       \textcolor{keyword}{constexpr} \textcolor{keyword}{static} \textcolor{keyword}{auto} \mbox{\hyperlink{structkblib_1_1detail_1_1buildiota__impl_3_01_array_00_01false_01_4_a57c5b32673564e6fe435fc07c940d60c}{impl}}(T \mbox{\hyperlink{structkblib_1_1detail_1_1value}{value}}) -\/> Array \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00391}00391          Array out\{\};}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00392}00392          \textcolor{keywordflow}{for} (\textcolor{keyword}{auto}\& v : out) \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00393}00393             v = \mbox{\hyperlink{structkblib_1_1detail_1_1value}{value}};}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00394}00394             ++\mbox{\hyperlink{structkblib_1_1detail_1_1value}{value}};}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00395}00395          \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00396}00396          \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00397}00397       \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00398}00398       \textcolor{keyword}{template} <\textcolor{keyword}{typename} T, \textcolor{keyword}{typename} I>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00399}\mbox{\hyperlink{structkblib_1_1detail_1_1buildiota__impl_3_01_array_00_01false_01_4_a18630dfb03400f1ae92914db61a90548}{00399}}       \textcolor{keyword}{constexpr} \textcolor{keyword}{static} \textcolor{keyword}{auto} \mbox{\hyperlink{structkblib_1_1detail_1_1buildiota__impl_3_01_array_00_01false_01_4_a18630dfb03400f1ae92914db61a90548}{impl}}(T \mbox{\hyperlink{structkblib_1_1detail_1_1value}{value}}, I incr) -\/> Array \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00400}00400          Array out\{\};}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00401}00401          \textcolor{keywordflow}{for} (\textcolor{keyword}{auto}\& v : out) \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00402}00402             v = \mbox{\hyperlink{structkblib_1_1detail_1_1value}{value}};}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00403}00403             \mbox{\hyperlink{structkblib_1_1detail_1_1value}{value}} += incr;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00404}00404          \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00405}00405          \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00406}00406       \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00407}00407    \};}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00408}00408 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00409}00409 \} \textcolor{comment}{// namespace detail}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00410}00410 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00424}00424 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename}... Args>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00425}\mbox{\hyperlink{namespacekblib_a2024ab838aaf4e23deb9bbc98390e887}{00425}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a2024ab838aaf4e23deb9bbc98390e887}{buildiota}}(Args\&\&... args) -\/> \textcolor{keyword}{auto} \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00426}00426    \textcolor{keywordflow}{return} \mbox{\hyperlink{structkblib_1_1detail_1_1buildiota__impl}{detail::buildiota\_impl<Container, is\_resizable\_v<Container>}}>::impl(}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00427}00427        std::forward<Args>(args)...);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00428}00428 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00429}00429 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00438}00438 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} InputIt>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00439}\mbox{\hyperlink{namespacekblib_ae140416fd22ee702f769b7fcd5b62d66}{00439}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_adc410174377c7de2738ce5036fe31b99}{build\_copy}}(InputIt first, InputIt last,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00440}00440                                 \textcolor{keyword}{typename} Container::allocator\_type allocator}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00441}00441                                 = \textcolor{keyword}{typename} Container::allocator\_type\{\})}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00442}00442     -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00443}00443    Container out(allocator);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00444}00444    \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{std::copy}}(first, last, std::back\_inserter(out));}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00445}00445    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00446}00446 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00447}00447 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00455}00455 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} Range,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00456}00456           enable\_if\_t<is\_resizable\_v<Container>, \textcolor{keywordtype}{int}> = 0>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00457}\mbox{\hyperlink{namespacekblib_ab5819760aeb8cb631c6b11d23c1f7d87}{00457}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_adc410174377c7de2738ce5036fe31b99}{build\_copy}}(Range\&\& r) -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00458}00458    \textcolor{keyword}{using }std::begin;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00459}00459    \textcolor{keyword}{using }std::end;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00460}00460    Container out(\mbox{\hyperlink{namespacekblib_a0e74aee94f446396c8f8b7bf34b16acb}{kblib::size}}(r));}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00461}00461    \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{std::copy}}(begin(r), end(r), begin(out));}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00462}00462    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00463}00463 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00464}00464 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00472}00472 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} Range>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00473}\mbox{\hyperlink{namespacekblib_ac1661b5bdfb17ff4ba473af6d88c61aa}{00473}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_adc410174377c7de2738ce5036fe31b99}{build\_copy}}(Range\&\& r,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00474}00474                                 \textcolor{keyword}{typename} Container::allocator\_type allocator}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00475}00475                                 = \textcolor{keyword}{typename} Container::allocator\_type\{\})}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00476}00476     -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00477}00477    Container out(allocator);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00478}00478    \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{std::copy}}(std::begin(r), std::end(r), std::back\_inserter(out));}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00479}00479    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00480}00480 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00481}00481 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00489}00489 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} InputIt,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00490}00490           enable\_if\_t<not is\_resizable\_v<Container>, \textcolor{keywordtype}{int}> = 0>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00491}\mbox{\hyperlink{namespacekblib_afdf68a6165cea2d31b0e940fd4de7d6a}{00491}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_adc410174377c7de2738ce5036fe31b99}{build\_copy}}(InputIt first, InputIt last)}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00492}00492     -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00493}00493    Container out\{\};}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00494}00494    \textcolor{keyword}{auto} pos = std::begin(out);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00495}00495    \textcolor{keyword}{auto} end = std::end(out);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00496}00496    \textcolor{keywordflow}{for} (; first != last and pos != end; ++first, ++pos) \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00497}00497       *pos = *first;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00498}00498    \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00499}00499    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00500}00500 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00501}00501 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00508}00508 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} Range,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00509}00509           enable\_if\_t<not is\_resizable\_v<Container>, \textcolor{keywordtype}{int}> = 0>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00510}\mbox{\hyperlink{namespacekblib_ac64ffa3114496642a4728082bac29a4e}{00510}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{constexpr} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_adc410174377c7de2738ce5036fe31b99}{build\_copy}}(Range\&\& r) -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00511}00511    Container out\{\};}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00512}00512    \textcolor{keyword}{auto} first = std::begin(r);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00513}00513    \textcolor{keyword}{auto} last = std::end(r);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00514}00514    \textcolor{keyword}{auto} pos = std::begin(out);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00515}00515    \textcolor{keyword}{auto} end = std::end(out);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00516}00516    \textcolor{keywordflow}{for} (; first != last and pos != end; ++first, ++pos) \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00517}00517       *pos = *first;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00518}00518    \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00519}00519    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00520}00520 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00521}00521 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00530}00530 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} InputIt,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00531}00531           enable\_if\_t<not is\_resizable\_v<Container>, \textcolor{keywordtype}{int}> = 0>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00532}\mbox{\hyperlink{namespacekblib_a22c37be2f65bb8810e0add151d6def8b}{00532}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_adc410174377c7de2738ce5036fe31b99}{build\_copy}}(InputIt first, InputIt last, std::size\_t \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}})}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00533}00533     -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00534}00534    Container out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00535}00535    \textcolor{keyword}{auto} pos = std::begin(out);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00536}00536    \textcolor{keyword}{auto} end = std::end(out);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00537}00537    \textcolor{keywordflow}{for} (std::size\_t count = 0; count != \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}} and first != last and pos != end;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00538}00538         ++first, ++pos, ++count) \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00539}00539       *pos = *first;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00540}00540    \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00541}00541    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00542}00542 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00543}00543 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00551}00551 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} Range,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00552}00552           enable\_if\_t<not is\_resizable\_v<Container>, \textcolor{keywordtype}{int}> = 0>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00553}\mbox{\hyperlink{namespacekblib_adc410174377c7de2738ce5036fe31b99}{00553}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_adc410174377c7de2738ce5036fe31b99}{build\_copy}}(Range\&\& r, std::size\_t \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}}) -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00554}00554    Container out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00555}00555    \textcolor{keyword}{auto} first = std::begin(r);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00556}00556    \textcolor{keyword}{auto} last = std::end(r);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00557}00557    \textcolor{keyword}{auto} pos = std::begin(out);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00558}00558    \textcolor{keyword}{auto} end = std::end(out);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00559}00559    \textcolor{keywordflow}{for} (std::size\_t count = 0; count != \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{size}} and first != last and pos != end;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00560}00560         ++first, ++pos, ++count) \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00561}00561       *pos = *first;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00562}00562    \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00563}00563    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00564}00564 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00565}00565 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00575}00575 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} Predicate>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00576}\mbox{\hyperlink{namespacekblib_a8b4bd970deaa3f4685bb38e8ee2a9316}{00576}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a8b4bd970deaa3f4685bb38e8ee2a9316}{build\_copy\_if}}(InputIt first, InputIt last, Predicate f,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00577}00577                                    \textcolor{keyword}{typename} Container::allocator\_type allocator}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00578}00578                                    = \textcolor{keyword}{typename} Container::allocator\_type\{\})}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00579}00579     -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00580}00580    Container out(allocator);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00581}00581    \mbox{\hyperlink{namespacekblib_a5e6f2b40f2b5e649d70df34e5bcc03fe}{kblib::copy\_if}}(first, last, std::back\_inserter(out), f);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00582}00582    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00583}00583 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00584}00584 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00593}00593 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} Size>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00594}\mbox{\hyperlink{namespacekblib_a16745b0c40e85addaa80021ad277a86d}{00594}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a16745b0c40e85addaa80021ad277a86d}{build\_copy\_n}}(InputIt first, Size count,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00595}00595                                   \textcolor{keyword}{typename} Container::allocator\_type allocator}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00596}00596                                   = \textcolor{keyword}{typename} Container::allocator\_type\{\})}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00597}00597     -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00598}00598    Container out(allocator);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00599}00599    \mbox{\hyperlink{namespacekblib_a428621582602281bc8643b3e6830e2d4}{std::copy\_n}}(first, count, std::back\_inserter(out));}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00600}00600    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00601}00601 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00602}00602 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00612}00612 \textcolor{keyword}{template} <\textcolor{keyword}{typename} Container, \textcolor{keyword}{typename} InputIt, \textcolor{keyword}{typename} Size,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00613}00613           \textcolor{keyword}{typename} Predicate>}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00614}\mbox{\hyperlink{namespacekblib_a3e9f8222a9efb7046888b2d45550d4a4}{00614}} \mbox{\hyperlink{tdecl_8h_a7f62d0731631a0e7675f45924b7f5ea0}{KBLIB\_NODISCARD}} \textcolor{keyword}{auto} \mbox{\hyperlink{namespacekblib_a3e9f8222a9efb7046888b2d45550d4a4}{build\_copy\_n\_if}}(}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00615}00615     InputIt first, Size count, Predicate f,}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00616}00616     \textcolor{keyword}{typename} Container::allocator\_type allocator}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00617}00617     = \textcolor{keyword}{typename} Container::allocator\_type\{\}) -\/> Container \{}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00618}00618    Container out(allocator);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00619}00619    \mbox{\hyperlink{namespacekblib_ab3f36a456830c5c88673a6df70828978}{kblib::copy\_n\_if}}(first, count, std::back\_inserter(out), f);}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00620}00620    \textcolor{keywordflow}{return} out;}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00621}00621 \}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00622}00622 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00623}00623 \textcolor{comment}{// transform\_accumulate}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00624}00624 \textcolor{comment}{// transform\_partial\_sum}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00625}00625 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00626}00626 \} \textcolor{comment}{// namespace KBLIB\_NS}}
\DoxyCodeLine{\Hypertarget{build_8h_source_l00627}00627 }
\DoxyCodeLine{\Hypertarget{build_8h_source_l00628}00628 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// KBLIB\_BUILD\_H}}

\end{DoxyCode}
