\hypertarget{build_8h}{}\doxysection{kblib/build.h File Reference}
\label{build_8h}\index{kblib/build.h@{kblib/build.h}}


Provides by-\/value algorithms which produce containers.  


{\ttfamily \#include \char`\"{}tdecl.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}algorithm.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}fakestd.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}iterators.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}traits.\+h\char`\"{}}\newline
{\ttfamily \#include $<$algorithm$>$}\newline
{\ttfamily \#include $<$iterator$>$}\newline
{\ttfamily \#include $<$numeric$>$}\newline
{\ttfamily \#include $<$tuple$>$}\newline
Include dependency graph for build.\+h\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{build_8h__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{build_8h__dep__incl}
\end{center}
\end{figure}
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structkblib_1_1detail_1_1buildiota__impl_3_01_container_00_01true_01_4}{kblib\+::detail\+::buildiota\+\_\+impl$<$ Container, true $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1detail_1_1buildiota__impl_3_01_array_00_01false_01_4}{kblib\+::detail\+::buildiota\+\_\+impl$<$ Array, false $>$}}
\end{DoxyCompactItemize}
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
namespace \mbox{\hyperlink{namespacekblib}{kblib}}
\begin{DoxyCompactList}\small\item\em The main namespace in which all entities from kblib are defined. \end{DoxyCompactList}\item 
namespace \mbox{\hyperlink{namespacekblib_1_1detail}{kblib\+::detail}}
\begin{DoxyCompactList}\small\item\em The namespace used for implementation details within kblib. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename Container , typename Input\+It , typename Unary\+Function $>$ }\\auto \mbox{\hyperlink{namespacekblib_a392972471eeedefaafc0f5154c3a4a32}{kblib\+::build}} (Input\+It first, Input\+It last, Unary\+Function f, typename Container\+::allocator\+\_\+type allocator=typename Container\+::allocator\+\_\+type\{\}) -\/$>$ Container
\begin{DoxyCompactList}\small\item\em Constructs a container by applying a Unary\+Function to every element of an input range. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , typename Input\+It , typename Input\+It2 , typename Binary\+Function $>$ }\\auto \mbox{\hyperlink{namespacekblib_ac0df0a7581f417956e3c29ec29f8a0c9}{kblib\+::build}} (Input\+It first, Input\+It last, Input\+It2 first2, Binary\+Function f, typename Container\+::allocator\+\_\+type allocator=typename Container\+::allocator\+\_\+type\{\}) -\/$>$ Container
\begin{DoxyCompactList}\small\item\em Constructs a container by applying a Binary\+Function to every pair of elements in the input ranges. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Array , typename Input\+It , typename Unary\+Function , enable\+\_\+if\+\_\+t$<$ not is\+\_\+resizable\+\_\+v$<$ Array $>$, int $>$  = 0$>$ }\\auto \mbox{\hyperlink{namespacekblib_a33d7779af12cb836b7a07e762c4251ee}{kblib\+::build}} (Input\+It first, Input\+It last, Unary\+Function f) -\/$>$ Array
\begin{DoxyCompactList}\small\item\em Constructs an array-\/like container by applying a Unary\+Function to every element of an input range. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Array , typename Input\+It , typename Input\+It2 , typename Binary\+Function , enable\+\_\+if\+\_\+t$<$ not is\+\_\+resizable\+\_\+v$<$ Array $>$, int $>$  = 0$>$ }\\auto \mbox{\hyperlink{namespacekblib_add6c009a3c106ba1528c168dee122c77}{kblib\+::build}} (Input\+It first, Input\+It last, Input\+It2 first2, Binary\+Function f) -\/$>$ Array
\begin{DoxyCompactList}\small\item\em Constructs an array-\/like container by applying a Binary\+Function to every pair of elements in the input ranges. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , typename Functor $>$ }\\auto \mbox{\hyperlink{namespacekblib_afcdcafb387d1769318df68f2b5598d96}{kblib\+::build}} (Functor f, size\+\_\+t size, typename Container\+::allocator\+\_\+type allocator=typename Container\+::allocator\+\_\+type\{\}) -\/$>$ Container
\begin{DoxyCompactList}\small\item\em Constructs a container with elements initialized by repeatedly calling a generating function. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Array , typename Functor , enable\+\_\+if\+\_\+t$<$ not is\+\_\+resizable\+\_\+v$<$ Array $>$, int $>$  = 0$>$ }\\auto \mbox{\hyperlink{namespacekblib_af103b44450c172da5a091d738b7b1e53}{kblib\+::build}} (Functor f, size\+\_\+t size=std\+::tuple\+\_\+size$<$ Array $>$\+::value) -\/$>$ Array
\begin{DoxyCompactList}\small\item\em Constructs an array-\/like container with elements initialized by repeatedly calling a generating function. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , typename Input\+It , typename Unary\+Function $>$ }\\auto \mbox{\hyperlink{namespacekblib_a7ac67153b0398f6cb4a57690d3d3bad0}{kblib\+::build\+\_\+dy}} (Input\+It first, Input\+It last, Unary\+Function f) -\/$>$ Container
\begin{DoxyCompactList}\small\item\em Constructs a container by applying a Unary\+Function to every element of an input range. Exactly like {\ttfamily build}, but for resizable non-\/\+Allocator\+Aware Containers (which are hard to detect automatically). \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , typename Input\+It , typename Input\+It2 , typename Binary\+Function $>$ }\\auto \mbox{\hyperlink{namespacekblib_ae4de9abf1f3ed56dd637e0aeeeb555a3}{kblib\+::build\+\_\+dy}} (Input\+It first, Input\+It last, Input\+It2 first2, Binary\+Function f) -\/$>$ Container
\begin{DoxyCompactList}\small\item\em Constructs a container by applying a Binary\+Function to every pair of elements in the input ranges. Exactly like {\ttfamily build}, but for resizable non-\/\+Allocator\+Aware Containers (which are hard to detect automatically). \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , typename Functor $>$ }\\auto \mbox{\hyperlink{namespacekblib_a1958e5a6146a77e469fe8e892a95d550}{kblib\+::build\+\_\+dy}} (Functor f, size\+\_\+t size) -\/$>$ Container
\begin{DoxyCompactList}\small\item\em Constructs a container with elements initialized by repeatedly calling a generating function. Exactly like {\ttfamily build}, but for resizable non-\/\+Allocator\+Aware Containers (which are hard to detect automatically). \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , typename Range , typename Unary\+Function , enable\+\_\+if\+\_\+t$<$ is\+\_\+resizable\+\_\+v$<$ Container $>$, int $>$  = 0$>$ }\\auto \mbox{\hyperlink{namespacekblib_ae538bfb0085fabd1601825a87bb792b3}{kblib\+::build\+\_\+dy}} (Range \&\&r, Unary\+Function f) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container , typename... Args$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a2024ab838aaf4e23deb9bbc98390e887}{kblib\+::buildiota}} (Args \&\&... args) -\/$>$ auto
\begin{DoxyCompactList}\small\item\em Builds a container of increasing values. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , typename Input\+It $>$ }\\auto \mbox{\hyperlink{namespacekblib_ae140416fd22ee702f769b7fcd5b62d66}{kblib\+::build\+\_\+copy}} (Input\+It first, Input\+It last, typename Container\+::allocator\+\_\+type allocator=typename Container\+::allocator\+\_\+type\{\}) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container , typename Range , enable\+\_\+if\+\_\+t$<$ is\+\_\+resizable\+\_\+v$<$ Container $>$, int $>$  = 0$>$ }\\auto \mbox{\hyperlink{namespacekblib_ab5819760aeb8cb631c6b11d23c1f7d87}{kblib\+::build\+\_\+copy}} (Range \&\&r) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container , typename Range $>$ }\\auto \mbox{\hyperlink{namespacekblib_ac1661b5bdfb17ff4ba473af6d88c61aa}{kblib\+::build\+\_\+copy}} (Range \&\&r, typename Container\+::allocator\+\_\+type allocator=typename Container\+::allocator\+\_\+type\{\}) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container , typename Input\+It , enable\+\_\+if\+\_\+t$<$ not is\+\_\+resizable\+\_\+v$<$ Container $>$, int $>$  = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_afdf68a6165cea2d31b0e940fd4de7d6a}{kblib\+::build\+\_\+copy}} (Input\+It first, Input\+It last) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container , typename Range , enable\+\_\+if\+\_\+t$<$ not is\+\_\+resizable\+\_\+v$<$ Container $>$, int $>$  = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ac64ffa3114496642a4728082bac29a4e}{kblib\+::build\+\_\+copy}} (Range \&\&r) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container , typename Input\+It , enable\+\_\+if\+\_\+t$<$ not is\+\_\+resizable\+\_\+v$<$ Container $>$, int $>$  = 0$>$ }\\auto \mbox{\hyperlink{namespacekblib_a22c37be2f65bb8810e0add151d6def8b}{kblib\+::build\+\_\+copy}} (Input\+It first, Input\+It last, std\+::size\+\_\+t size) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container , typename Range , enable\+\_\+if\+\_\+t$<$ not is\+\_\+resizable\+\_\+v$<$ Container $>$, int $>$  = 0$>$ }\\auto \mbox{\hyperlink{namespacekblib_adc410174377c7de2738ce5036fe31b99}{kblib\+::build\+\_\+copy}} (Range \&\&r, std\+::size\+\_\+t size) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container , typename Input\+It , typename Predicate $>$ }\\auto \mbox{\hyperlink{namespacekblib_a8b4bd970deaa3f4685bb38e8ee2a9316}{kblib\+::build\+\_\+copy\+\_\+if}} (Input\+It first, Input\+It last, Predicate f, typename Container\+::allocator\+\_\+type allocator=typename Container\+::allocator\+\_\+type\{\}) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container , typename Input\+It , typename Size $>$ }\\auto \mbox{\hyperlink{namespacekblib_a16745b0c40e85addaa80021ad277a86d}{kblib\+::build\+\_\+copy\+\_\+n}} (Input\+It first, Size count, typename Container\+::allocator\+\_\+type allocator=typename Container\+::allocator\+\_\+type\{\}) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container , typename Input\+It , typename Size , typename Predicate $>$ }\\auto \mbox{\hyperlink{namespacekblib_a3e9f8222a9efb7046888b2d45550d4a4}{kblib\+::build\+\_\+copy\+\_\+n\+\_\+if}} (Input\+It first, Size count, Predicate f, typename Container\+::allocator\+\_\+type allocator=typename Container\+::allocator\+\_\+type\{\}) -\/$>$ Container
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Provides by-\/value algorithms which produce containers. 

\begin{DoxyAuthor}{Author}
killerbee 
\end{DoxyAuthor}
\begin{DoxyDate}{Date}
2019-\/2021 
\end{DoxyDate}
\begin{DoxyCopyright}{Copyright}
GNU General Public Licence v3.\+0 
\end{DoxyCopyright}


Definition in file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

