\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 .}} \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 }} \DoxyCodeLine{\Hypertarget{build_8h_source_l00042}00042 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{\Hypertarget{build_8h_source_l00043}00043 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{\Hypertarget{build_8h_source_l00044}00044 \textcolor{preprocessor}{\#include }} \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 }} \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, \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, \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, \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::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, \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::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::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::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::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}} \{} \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}} \{} \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}}>::impl(} \DoxyCodeLine{\Hypertarget{build_8h_source_l00427}00427 std::forward(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, \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, \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, \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, \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, \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}