\hypertarget{namespacekblib}{}\doxysection{kblib Namespace Reference}
\label{namespacekblib}\index{kblib@{kblib}}


The main namespace in which all entities from kblib are defined.  


\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1asserts}{asserts}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1lcgs_1_1best__lcgs}{best\+\_\+lcgs}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1lcgs_1_1common__lcgs}{common\+\_\+lcgs}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1detail}{detail}}
\begin{DoxyCompactList}\small\item\em The namespace used for implementation details within kblib. \end{DoxyCompactList}\item 
namespace \mbox{\hyperlink{namespacekblib_1_1detail__algorithm}{detail\+\_\+algorithm}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1detail__bits}{detail\+\_\+bits}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1detail__convert}{detail\+\_\+convert}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1detail__cry}{detail\+\_\+cry}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1detail__direct__map}{detail\+\_\+direct\+\_\+map}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1detail__enumerate}{detail\+\_\+enumerate}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1detail__hash}{detail\+\_\+hash}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1detail__io}{detail\+\_\+io}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1detail__iterators}{detail\+\_\+iterators}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1detail__memory}{detail\+\_\+memory}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1detail__poly}{detail\+\_\+poly}}
\begin{DoxyCompactList}\small\item\em Implementation details for \mbox{\hyperlink{classkblib_1_1poly__obj}{poly\+\_\+obj}}. \end{DoxyCompactList}\item 
namespace \mbox{\hyperlink{namespacekblib_1_1detail__simple}{detail\+\_\+simple}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1detail__sort}{detail\+\_\+sort}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1detail__units}{detail\+\_\+units}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1fakestd}{fakestd}}
\begin{DoxyCompactList}\small\item\em A namespace which holds all the C++14 implementations of C++17 standard library features. In C++17, it is simply defined as an alias to std. \end{DoxyCompactList}\item 
namespace \mbox{\hyperlink{namespacekblib_1_1fnv}{fnv}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1icu__str__ops}{icu\+\_\+str\+\_\+ops}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1lcgs}{lcgs}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1literals}{literals}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1multi__impl}{multi\+\_\+impl}}
\item 
namespace \mbox{\hyperlink{namespacekblib_1_1nums}{nums}}
\end{DoxyCompactItemize}
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \mbox{\hyperlink{classkblib_1_1adjacent__iterator}{adjacent\+\_\+iterator}}
\begin{DoxyCompactList}\small\item\em TODO(killerbee13)\+: Implement \mbox{\hyperlink{classkblib_1_1adjacent__iterator}{adjacent\+\_\+iterator}}. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1adjuster}{adjuster}}
\item 
class \mbox{\hyperlink{classkblib_1_1back__insert__iterator___f}{back\+\_\+insert\+\_\+iterator\+\_\+F}}
\begin{DoxyCompactList}\small\item\em An Output\+Iterator that transforms the values assigned to it before inserting them into the back of a container. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkblib_1_1basic__teestream}{basic\+\_\+teestream}}
\item 
struct \mbox{\hyperlink{structkblib_1_1bitfield}{bitfield}}
\begin{DoxyCompactList}\small\item\em Implements a bitfield abstraction. May be used in a union with other bitfields. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1build__end__t}{build\+\_\+end\+\_\+t}}
\item 
class \mbox{\hyperlink{classkblib_1_1build__iterator}{build\+\_\+iterator}}
\item 
class \mbox{\hyperlink{classkblib_1_1build__iterator_3_01_container_00_01true_01_4}{build\+\_\+iterator$<$ Container, true $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1class__of}{class\+\_\+of}}
\item 
struct \mbox{\hyperlink{structkblib_1_1class__of_3_01_m_01_t_1_1_5_01_4}{class\+\_\+of$<$ M T\+::$\ast$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1clone__copy}{clone\+\_\+copy}}
\begin{DoxyCompactList}\small\item\em Implements copy construction using a virtual clone method. This type is provided mostly as an example. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkblib_1_1compact__bit__trie}{compact\+\_\+bit\+\_\+trie}}
\item 
class \mbox{\hyperlink{classkblib_1_1cond__ptr}{cond\+\_\+ptr}}
\item 
class \mbox{\hyperlink{classkblib_1_1cond__ptr_3_01_t_0f_0e_00_01_deleter_01_4}{cond\+\_\+ptr$<$ T\mbox{[}$\,$\mbox{]}, Deleter $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1constant}{constant}}
\item 
struct \mbox{\hyperlink{structkblib_1_1construct__with__capacity}{construct\+\_\+with\+\_\+capacity}}
\item 
struct \mbox{\hyperlink{structkblib_1_1construct__with__size}{construct\+\_\+with\+\_\+size}}
\item 
class \mbox{\hyperlink{classkblib_1_1consume__iterator}{consume\+\_\+iterator}}
\begin{DoxyCompactList}\small\item\em An Output\+Iterator that simply calls a provided functor for each value assigned to it. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1containing__ptr}{containing\+\_\+ptr}}
\begin{DoxyCompactList}\small\item\em A smart pointer to an object contained inside the smart pointer object. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1contains__type}{contains\+\_\+type}}
\begin{DoxyCompactList}\small\item\em Determines if T is a type in Tuple, which must be a std\+::tuple. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1contains__type_3_01std_1_1tuple_3_01_t_00_01_ts_8_8_8_01_4_00_01_t_01_4}{contains\+\_\+type$<$ std\+::tuple$<$ T, Ts... $>$, T $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1contains__type_3_01std_1_1tuple_3_01_t_00_01_ts_8_8_8_01_4_00_01_u_01_4}{contains\+\_\+type$<$ std\+::tuple$<$ T, Ts... $>$, U $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1contains__type_3_01std_1_1tuple_3_4_00_01_t_01_4}{contains\+\_\+type$<$ std\+::tuple$<$$>$, T $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1contains__types}{contains\+\_\+types}}
\begin{DoxyCompactList}\small\item\em Determines if Lhs contains all of the types in Rhs, where both are std\+::tuples. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1contains__types_3_01_tuple_00_01std_1_1tuple_3_01_t_00_01_ts_8_8_8_01_4_01_4}{contains\+\_\+types$<$ Tuple, std\+::tuple$<$ T, Ts... $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1contains__types_3_01_tuple_00_01std_1_1tuple_3_4_01_4}{contains\+\_\+types$<$ Tuple, std\+::tuple$<$$>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1copy__const}{copy\+\_\+const}}
\item 
struct \mbox{\hyperlink{structkblib_1_1copy__const_3_01_c_00_01_t_01_6_6_00_01true_01_4}{copy\+\_\+const$<$ C, T \&\&, true $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1copy__const_3_01_c_00_01_t_01_6_00_01true_01_4}{copy\+\_\+const$<$ C, T \&, true $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1copy__const_3_01_c_00_01_t_00_01true_01_4}{copy\+\_\+const$<$ C, T, true $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1counting__back__insert__iterator}{counting\+\_\+back\+\_\+insert\+\_\+iterator}}
\begin{DoxyCompactList}\small\item\em Like a std\+::back\+\_\+insert\+\_\+iterator, but it keeps track of how many insertions it has made, allowing an end iterator to be created. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1decrementer}{decrementer}}
\begin{DoxyCompactList}\small\item\em A struct which decrements anything it is added to. Suitable for use as a Delta type for \mbox{\hyperlink{classkblib_1_1range__t}{range\+\_\+t}}. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1default__copy}{default\+\_\+copy}}
\begin{DoxyCompactList}\small\item\em Implements type erasure for copy construction. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1default__copy_3_01_obj_00_01false_01_4}{default\+\_\+copy$<$ Obj, false $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1default__destroy}{default\+\_\+destroy}}
\begin{DoxyCompactList}\small\item\em Uses the class\textquotesingle{}s virtual destructor. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1default__extract}{default\+\_\+extract}}
\item 
struct \mbox{\hyperlink{structkblib_1_1default__extract_3_01_key_00_01void__if__t_3_01is__linear__container__v_3_01_key_01_4_01_4_01_4}{default\+\_\+extract$<$ Key, void\+\_\+if\+\_\+t$<$ is\+\_\+linear\+\_\+container\+\_\+v$<$ Key $>$ $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1default__extract_3_01_key_elem_0f_0e_00_01void__if__t_3_01std_1_1is__integral__v_3_01_key_elem_01_4_01_4_01_4}{default\+\_\+extract$<$ Key\+Elem\mbox{[}$\,$\mbox{]}, void\+\_\+if\+\_\+t$<$ std\+::is\+\_\+integral\+\_\+v$<$ Key\+Elem $>$ $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1default__move}{default\+\_\+move}}
\begin{DoxyCompactList}\small\item\em Implements type erasure for move construction. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1default__move_3_01_obj_00_01false_00_01nothrow_00_01false_01_4}{default\+\_\+move$<$ Obj, false, nothrow, false $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1default__move_3_01_obj_00_01false_00_01nothrow_00_01true_01_4}{default\+\_\+move$<$ Obj, false, nothrow, true $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1delayed__construct}{delayed\+\_\+construct}}
\item 
class \mbox{\hyperlink{classkblib_1_1direct__map}{direct\+\_\+map}}
\item 
class \mbox{\hyperlink{classkblib_1_1direct__map_3_01_key_00_01_t_00_01void_01_4}{direct\+\_\+map$<$ Key, T, void $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1enumerate__iterator}{enumerate\+\_\+iterator}}
\item 
struct \mbox{\hyperlink{structkblib_1_1enumerate__t}{enumerate\+\_\+t}}
\item 
struct \mbox{\hyperlink{structkblib_1_1enumerate__t_3_01_range_00_01void_01_4}{enumerate\+\_\+t$<$ Range, void $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1enumeration}{enumeration}}
\item 
class \mbox{\hyperlink{classkblib_1_1enumerator__iterator}{enumerator\+\_\+iterator}}
\item 
class \mbox{\hyperlink{classkblib_1_1enumerator__t}{enumerator\+\_\+t}}
\item 
class \mbox{\hyperlink{classkblib_1_1enumerator__t_3_01_range_00_01void_01_4}{enumerator\+\_\+t$<$ Range, void $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1equivalent}{equivalent}}
\begin{DoxyCompactList}\small\item\em A function object implementing the equivalence relationship over a comparison predicate. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1equivalent_3_01_compare_00_01void_01_4}{equivalent$<$ Compare, void $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1equivalent_3_01void_00_01_obj_01_4}{equivalent$<$ void, Obj $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1equivalent_3_01void_00_01void_01_4}{equivalent$<$ void, void $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1exists}{exists}}
\item 
struct \mbox{\hyperlink{structkblib_1_1exists__t}{exists\+\_\+t}}
\item 
struct \mbox{\hyperlink{structkblib_1_1extractor__policy__for}{extractor\+\_\+policy\+\_\+for}}
\item 
struct \mbox{\hyperlink{structkblib_1_1extractor__policy__for_3_01_container_00_01void__t_3_01decltype_07std_1_1declval_544819f885a6e23bd6f87dda9bacc3f2}{extractor\+\_\+policy\+\_\+for$<$ Container, void\+\_\+t$<$ decltype(std\+::declval$<$ Container $>$()\mbox{[}0\mbox{]})$>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1file__deleter}{file\+\_\+deleter}}
\item 
struct \mbox{\hyperlink{structkblib_1_1first__bigger__than}{first\+\_\+bigger\+\_\+than}}
\item 
struct \mbox{\hyperlink{structkblib_1_1first__bigger__than_3_01size_00_01_t_01_4}{first\+\_\+bigger\+\_\+than$<$ size, T $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1_f_n_v__hash}{FNV\+\_\+hash}}
\begin{DoxyCompactList}\small\item\em The primary template has to exist, but not be constructible, in order to be compatible with std\+::hash. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1_f_n_v__hash_3_01bool_00_01_hash_int_00_01void_01_4}{FNV\+\_\+hash$<$ bool, Hash\+Int, void $>$}}
\begin{DoxyCompactList}\small\item\em Hasher for bool. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1_f_n_v__hash_3_01char_00_01_hash_int_00_01void_01_4}{FNV\+\_\+hash$<$ char, Hash\+Int, void $>$}}
\begin{DoxyCompactList}\small\item\em Hasher for char. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1_f_n_v__hash_3_01_container_00_01_hash_int_00_01void__if__t_3_01value__detected_3e9bfb9ddd66886bf87a07a71a07a8fa9}{FNV\+\_\+hash$<$ Container, Hash\+Int, void\+\_\+if\+\_\+t$<$ value\+\_\+detected$<$ Container $>$\+::value and is\+\_\+hashable\+\_\+v$<$ value\+\_\+detected\+\_\+t$<$ Container $>$ $>$ and not hash\+\_\+detected$<$ Container $>$\+::value and is\+\_\+iterable$<$ Container $>$\+::value and not(is\+\_\+contiguous$<$ Container $>$\+::value and is\+\_\+trivially\+\_\+hashable\+\_\+v$<$ typename Container\+::value\+\_\+type $>$) and not is\+\_\+iterator\+\_\+v$<$ Container $>$ $>$ $>$}}
\begin{DoxyCompactList}\small\item\em Container hasher, for non-\/trivial elements (or non-\/contiguous storage) \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1_f_n_v__hash_3_01_container_00_01_hash_int_00_01void__if__t_3_07is__contiguous__v22da9f992987654025f033c7cfb43f33}{FNV\+\_\+hash$<$ Container, Hash\+Int, void\+\_\+if\+\_\+t$<$(is\+\_\+contiguous\+\_\+v$<$ Container $>$ and is\+\_\+trivially\+\_\+hashable\+\_\+v$<$ typename Container\+::value\+\_\+type $>$)$>$ $>$}}
\begin{DoxyCompactList}\small\item\em Container hasher, for contiguously-\/stored trivial elements. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1_f_n_v__hash_3_01delayed__construct_3_01_t_01_4_00_01void_01_4}{FNV\+\_\+hash$<$ delayed\+\_\+construct$<$ T $>$, void $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1_f_n_v__hash_3_01signed_01char_00_01_hash_int_00_01void_01_4}{FNV\+\_\+hash$<$ signed char, Hash\+Int, void $>$}}
\begin{DoxyCompactList}\small\item\em Hasher for signed char. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1_f_n_v__hash_3_01std_1_1optional_3_01_t_01_4_00_01_hash_int_00_01void_01_4}{FNV\+\_\+hash$<$ std\+::optional$<$ T $>$, Hash\+Int, void $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1_f_n_v__hash_3_01_t_00_01_hash_int_00_01void__if__t_3_01not_01is__contiguous__v_3e66815ec611e56a0a8c73036102d6bbb}{FNV\+\_\+hash$<$ T, Hash\+Int, void\+\_\+if\+\_\+t$<$ not is\+\_\+contiguous\+\_\+v$<$ T $>$ and not std\+::is\+\_\+integral$<$ T $>$\+::value and not std\+::is\+\_\+pointer$<$ T $>$\+::value and is\+\_\+trivially\+\_\+hashable\+\_\+v$<$ T $>$ $>$ $>$}}
\begin{DoxyCompactList}\small\item\em Hasher for any non-\/integral trivially copyable type that has no padding. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1_f_n_v__hash_3_01_t_00_01_hash_int_00_01void__if__t_3_01std_1_1is__empty_3_01_t_01_4_1_1value_01_4_01_4}{FNV\+\_\+hash$<$ T, Hash\+Int, void\+\_\+if\+\_\+t$<$ std\+::is\+\_\+empty$<$ T $>$\+::value $>$ $>$}}
\begin{DoxyCompactList}\small\item\em An empty type is treated as if it were a single null byte. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1_f_n_v__hash_3_01_t_00_01_hash_int_00_01void__if__t_3_01std_1_1is__integral_3_01_599ab9b315b255c76bff3a59b2a07d79}{FNV\+\_\+hash$<$ T, Hash\+Int, void\+\_\+if\+\_\+t$<$ std\+::is\+\_\+integral$<$ T $>$\+::value and is\+\_\+trivially\+\_\+hashable\+\_\+v$<$ T $>$ $>$ $>$}}
\begin{DoxyCompactList}\small\item\em Hasher for any integral type without padding type not explicitly mentioned above. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1_f_n_v__hash_3_01_t_00_01_hash_int_00_01void__if__t_3_01std_1_1is__pointer_3_01_t_01_4_1_1value_01_4_01_4}{FNV\+\_\+hash$<$ T, Hash\+Int, void\+\_\+if\+\_\+t$<$ std\+::is\+\_\+pointer$<$ T $>$\+::value $>$ $>$}}
\begin{DoxyCompactList}\small\item\em Hasher for any pointer type. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1_f_n_v__hash_3_01_t_00_01_hash_int_00_01void__if__t_3_07std_1_1is__base__of_3_01s3a60a3855c96d32ad8e3e4529f547819}{FNV\+\_\+hash$<$ T, Hash\+Int, void\+\_\+if\+\_\+t$<$(std\+::is\+\_\+base\+\_\+of$<$ std\+::forward\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ T $>$\+::iterator\+\_\+category $>$\+::value and not std\+::is\+\_\+pointer$<$ T $>$\+::value and not is\+\_\+trivially\+\_\+hashable\+\_\+v$<$ T $>$ and std\+::is\+\_\+pointer$<$ typename fakestd\+::invoke\+\_\+result$<$ decltype(\&\+T\+::operator-\/$>$), T $>$\+::type $>$\+::value)$>$ $>$}}
\begin{DoxyCompactList}\small\item\em Hasher for any forward iterator type. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1_f_n_v__hash_3_01unsigned_01char_00_01_hash_int_00_01void_01_4}{FNV\+\_\+hash$<$ unsigned char, Hash\+Int, void $>$}}
\begin{DoxyCompactList}\small\item\em Hasher for unsigned char. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1_f_n_v__hash_3_01void_00_01_hash_int_00_01void_01_4}{FNV\+\_\+hash$<$ void, Hash\+Int, void $>$}}
\begin{DoxyCompactList}\small\item\em Transparent hasher for any hashable type. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1get__manip}{get\+\_\+manip}}
\begin{DoxyCompactList}\small\item\em A helper class for wrapping stream manipulators. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1has__member__swap}{has\+\_\+member\+\_\+swap}}
\item 
struct \mbox{\hyperlink{structkblib_1_1has__reserve}{has\+\_\+reserve}}
\begin{DoxyCompactList}\small\item\em True if and only if C contains an accessible reserve() member. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1hash__detected}{hash\+\_\+detected}}
\item 
struct \mbox{\hyperlink{structkblib_1_1hash__detected_3_01_t_00_01void__t_3_01typename_01_t_1_1hasher_01_4_01_4}{hash\+\_\+detected$<$ T, void\+\_\+t$<$ typename T\+::hasher $>$ $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1heap__value}{heap\+\_\+value}}
\item 
class \mbox{\hyperlink{classkblib_1_1heap__value2}{heap\+\_\+value2}}
\item 
class \mbox{\hyperlink{classkblib_1_1heap__value2_3_01_t_0f_0e_00_01_d_01_4}{heap\+\_\+value2$<$ T\mbox{[}$\,$\mbox{]}, D $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1identity}{identity}}
\begin{DoxyCompactList}\small\item\em The identity function, as a function object. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1ignore}{ignore}}
\begin{DoxyCompactList}\small\item\em Ignores its first template argument entirely, and returns its second. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1implies}{implies}}
\begin{DoxyCompactList}\small\item\em A metafunction for logical implication. That is, if A, then B. If not A, B is unimportant. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1implies_3_01true_00_01false_01_4}{implies$<$ true, false $>$}}
\begin{DoxyCompactList}\small\item\em Logical implication is only not satisfied by true -\/\texorpdfstring{$>$}{>} false. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1in__place__agg__t}{in\+\_\+place\+\_\+agg\+\_\+t}}
\item 
struct \mbox{\hyperlink{structkblib_1_1incrementer}{incrementer}}
\begin{DoxyCompactList}\small\item\em A struct which increments anything it is added to. Suitable for use as a Delta type for \mbox{\hyperlink{classkblib_1_1range__t}{range\+\_\+t}}. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1indexer__extractor}{indexer\+\_\+extractor}}
\item 
struct \mbox{\hyperlink{structkblib_1_1indirect__range}{indirect\+\_\+range}}
\begin{DoxyCompactList}\small\item\em Allow range-\/for iteration of an iterator pair. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkblib_1_1intrusive__dual__map}{intrusive\+\_\+dual\+\_\+map}}
\item 
class \mbox{\hyperlink{classkblib_1_1intrusive__hash__map}{intrusive\+\_\+hash\+\_\+map}}
\item 
class \mbox{\hyperlink{classkblib_1_1irange__t}{irange\+\_\+t}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__aliasing__type}{is\+\_\+aliasing\+\_\+type}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__aliasing__type_3_01char_01_4}{is\+\_\+aliasing\+\_\+type$<$ char $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__aliasing__type_3_01unsigned_01char_01_4}{is\+\_\+aliasing\+\_\+type$<$ unsigned char $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__bidirectional__iterator}{is\+\_\+bidirectional\+\_\+iterator}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__bidirectional__iterator_3_01_t_00_01void__if__t_3_01std_1_1is__base__of_3_01sa49b8d252b80c33e3e8c1f1cd38ed80a}{is\+\_\+bidirectional\+\_\+iterator$<$ T, void\+\_\+if\+\_\+t$<$ std\+::is\+\_\+base\+\_\+of$<$ std\+::bidirectional\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ T $>$\+::iterator\+\_\+category $>$\+::value $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__bounded__array}{is\+\_\+bounded\+\_\+array}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__bounded__array_3_01_t_0f_n_0e_4}{is\+\_\+bounded\+\_\+array$<$ T\mbox{[}\+N\mbox{]}$>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__callable}{is\+\_\+callable}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__character}{is\+\_\+character}}
\begin{DoxyCompactList}\small\item\em Determine if the given type, ignoring const or reference qualifiers, is a character type. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1is__contiguous}{is\+\_\+contiguous}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__forward__iterator}{is\+\_\+forward\+\_\+iterator}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__forward__iterator_3_01_t_00_01void__if__t_3_01std_1_1is__base__of_3_01std_1_1123504ca44604c4d631a64f1c696432e}{is\+\_\+forward\+\_\+iterator$<$ T, void\+\_\+if\+\_\+t$<$ std\+::is\+\_\+base\+\_\+of$<$ std\+::forward\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ T $>$\+::iterator\+\_\+category $>$\+::value $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__hashable}{is\+\_\+hashable}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__hashable_3_01_key_00_01void__if__t_3_01std_1_1is__constructible_3_01_f_n_v__h0fe8e28e8deeee6e1cd8888a8a885a34}{is\+\_\+hashable$<$ Key, void\+\_\+if\+\_\+t$<$ std\+::is\+\_\+constructible$<$ FNV\+\_\+hash$<$ Key $>$ $>$\+::value $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__input__iterator_3_01_t_00_01void__if__t_3_01std_1_1is__base__of_3_01std_1_1in234768fad8d9bb60c694b1d9d96c2c0c}{is\+\_\+input\+\_\+iterator$<$ T, void\+\_\+if\+\_\+t$<$ std\+::is\+\_\+base\+\_\+of$<$ std\+::input\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ T $>$\+::iterator\+\_\+category $>$\+::value $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__iterable_3_01_range_00_01void__if__t_3_01is__input__iterator_3_01decltype_07b2bc8ae14696a5d961b6b820839a016a5}{is\+\_\+iterable$<$ Range, void\+\_\+if\+\_\+t$<$ is\+\_\+input\+\_\+iterator$<$ decltype(begin(std\+::declval$<$ Range \& $>$()))$>$\+::value $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__iterable_3_01_t_07_6_08_0f_n_0e_00_01void_01_4}{is\+\_\+iterable$<$ T(\&)\mbox{[}\+N\mbox{]}, void $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__iterable_3_01_t_0f_n_0e_00_01void_01_4}{is\+\_\+iterable$<$ T\mbox{[}\+N\mbox{]}, void $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__iterator}{is\+\_\+iterator}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__iterator_3_01_t_00_01void__t_3_01decltype_07_5std_1_1declval_3_01_t_01_6_01_417754e2a59262d22e4830b1d5c55d7cc}{is\+\_\+iterator$<$ T, void\+\_\+t$<$ decltype($\ast$std\+::declval$<$ T \& $>$(), void(),++std\+::declval$<$ T \& $>$())$>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__linear__container}{is\+\_\+linear\+\_\+container}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__optional}{is\+\_\+optional}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__optional_3_01std_1_1optional_3_01_u_01_4_01_4}{is\+\_\+optional$<$ std\+::optional$<$ U $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__output__iterator__for}{is\+\_\+output\+\_\+iterator\+\_\+for}}
\begin{DoxyCompactList}\small\item\em Determine if T is a valid output iterator to which values of type E may be written. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1is__output__iterator__for_3_01_t_00_01_e_00_01void__t_3_01decltype_07_5std_1_1dec93bfaad0990f9bf6c57857b906bb5af3}{is\+\_\+output\+\_\+iterator\+\_\+for$<$ T, E, void\+\_\+t$<$ decltype($\ast$std\+::declval$<$ T \& $>$()++=std\+::declval$<$ const E \& $>$())$>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__radix__sortable}{is\+\_\+radix\+\_\+sortable}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__radix__sortable_3_01std_1_1bitset_3_01_b_01_4_00_01void_01_4}{is\+\_\+radix\+\_\+sortable$<$ std\+::bitset$<$ B $>$, void $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__radix__sortable_3_01_t_00_01void__if__t_3_01is__linear__container__v_3_01_t_0e0a5e14e1e0c00645c6c7783f7f45255}{is\+\_\+radix\+\_\+sortable$<$ T, void\+\_\+if\+\_\+t$<$ is\+\_\+linear\+\_\+container\+\_\+v$<$ T $>$ and std\+::is\+\_\+integral$<$ typename T\+::value\+\_\+type $>$\+::value $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__radix__sortable_3_01_t_00_01void__if__t_3_01std_1_1is__enum_3_01_t_01_4_1_1value_01_4_01_4}{is\+\_\+radix\+\_\+sortable$<$ T, void\+\_\+if\+\_\+t$<$ std\+::is\+\_\+enum$<$ T $>$\+::value $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__radix__sortable_3_01_t_00_01void__if__t_3_01std_1_1is__integral_3_01_t_01_4_1_1value_01_4_01_4}{is\+\_\+radix\+\_\+sortable$<$ T, void\+\_\+if\+\_\+t$<$ std\+::is\+\_\+integral$<$ T $>$\+::value $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__random__access__iterator}{is\+\_\+random\+\_\+access\+\_\+iterator}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__random__access__iterator_3_01_t_00_01void__if__t_3_01std_1_1is__base__of_3_0176e99d6e82616d065cc522966db7e3ec}{is\+\_\+random\+\_\+access\+\_\+iterator$<$ T, void\+\_\+if\+\_\+t$<$ std\+::is\+\_\+base\+\_\+of$<$ std\+::random\+\_\+access\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ T $>$\+::iterator\+\_\+category $>$\+::value $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__resizable}{is\+\_\+resizable}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__space}{is\+\_\+space}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__trivial__transformation}{is\+\_\+trivial\+\_\+transformation}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__trivial__transformation_3_01identity_01_4}{is\+\_\+trivial\+\_\+transformation$<$ identity $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__trivially__hashable}{is\+\_\+trivially\+\_\+hashable}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__tuple__like}{is\+\_\+tuple\+\_\+like}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__tuple__like_3_01_t_00_01void__t_3_01typename_01std_1_1tuple__element_3_010_00_01_t_01_4_1_1type_01_4_01_4}{is\+\_\+tuple\+\_\+like$<$ T, void\+\_\+t$<$ typename std\+::tuple\+\_\+element$<$ 0, T $>$\+::type $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__unbounded__array}{is\+\_\+unbounded\+\_\+array}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__unbounded__array_3_01_t_0f_0e_4}{is\+\_\+unbounded\+\_\+array$<$ T\mbox{[}$\,$\mbox{]}$>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1is__variant__like}{is\+\_\+variant\+\_\+like}}
\item 
struct \mbox{\hyperlink{structkblib_1_1iterator__extractor}{iterator\+\_\+extractor}}
\item 
struct \mbox{\hyperlink{structkblib_1_1iterator__type__for}{iterator\+\_\+type\+\_\+for}}
\begin{DoxyCompactList}\small\item\em Type trait that determines the iterator type for a range. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1iterator__type__for_3_01_range_00_01void__t_3_01decltype_07begin_07std_1_1declval1101c10852428ba517f2e2551d7e07be}{iterator\+\_\+type\+\_\+for$<$ Range, void\+\_\+t$<$ decltype(begin(std\+::declval$<$ Range \& $>$()))$>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1iterator__type__for_3_01_t_0f_n_0e_00_01void_01_4}{iterator\+\_\+type\+\_\+for$<$ T\mbox{[}\+N\mbox{]}, void $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1key__detected}{key\+\_\+detected}}
\item 
struct \mbox{\hyperlink{structkblib_1_1key__detected_3_01_t_00_01void__t_3_01typename_01_t_1_1key__type_01_4_01_4}{key\+\_\+detected$<$ T, void\+\_\+t$<$ typename T\+::key\+\_\+type $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1key__type__setlike}{key\+\_\+type\+\_\+setlike}}
\item 
struct \mbox{\hyperlink{structkblib_1_1key__type__setlike_3_01_container_00_01true_00_01false_01_4}{key\+\_\+type\+\_\+setlike$<$ Container, true, false $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1lexical__caster}{lexical\+\_\+caster}}
\item 
struct \mbox{\hyperlink{structkblib_1_1lexical__caster_3_01_same_00_01_same_01_4}{lexical\+\_\+caster$<$ Same, Same $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1lexical__caster_3_01std_1_1string_00_01_from_01_4}{lexical\+\_\+caster$<$ std\+::string, From $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1lexical__caster_3_01std_1_1string_00_01std_1_1string_01_4}{lexical\+\_\+caster$<$ std\+::string, std\+::string $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1lexical__caster_3_01std_1_1string__view_00_01_from_01_4}{lexical\+\_\+caster$<$ std\+::string\+\_\+view, From $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1lexical__caster_3_01std_1_1string__view_00_01std_1_1string_01_4}{lexical\+\_\+caster$<$ std\+::string\+\_\+view, std\+::string $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1lexical__caster_3_01std_1_1string__view_00_01std_1_1string__view_01_4}{lexical\+\_\+caster$<$ std\+::string\+\_\+view, std\+::string\+\_\+view $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1lexical__caster_3_01_to_00_01std_1_1string_01_4}{lexical\+\_\+caster$<$ To, std\+::string $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1lexical__caster_3_01_to_00_01std_1_1string__view_01_4}{lexical\+\_\+caster$<$ To, std\+::string\+\_\+view $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1list__as__tuple}{list\+\_\+as\+\_\+tuple}}
\item 
struct \mbox{\hyperlink{structkblib_1_1list__as__tuple_3_01_tuple_3_01_ts_8_8_8_01_4_01_4}{list\+\_\+as\+\_\+tuple$<$ Tuple$<$ Ts... $>$ $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1live__ptr}{live\+\_\+ptr}}
\item 
class \mbox{\hyperlink{classkblib_1_1live__ptr_3_01const_01m_t_01_4}{live\+\_\+ptr$<$ const m\+T $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1live__wrapper}{live\+\_\+wrapper}}
\item 
class \mbox{\hyperlink{classkblib_1_1live__wrapper_3_01const_01_t_01_4}{live\+\_\+wrapper$<$ const T $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1mapped__detected}{mapped\+\_\+detected}}
\item 
struct \mbox{\hyperlink{structkblib_1_1mapped__detected_3_01_t_00_01void__t_3_01typename_01_t_1_1mapped__type_01_4_01_4}{mapped\+\_\+detected$<$ T, void\+\_\+t$<$ typename T\+::mapped\+\_\+type $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1nums_1_1max__t}{max\+\_\+t}}
\begin{DoxyCompactList}\small\item\em Shorthand for \mbox{\hyperlink{namespacekblib_1_1nums_a64067ecc4167ce1cfe32860ef5c1dc47}{std\+::numeric\+\_\+limits\+::max()}}. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1member__of}{member\+\_\+of}}
\item 
struct \mbox{\hyperlink{structkblib_1_1member__of_3_01_m_01_t_1_1_5_01_4}{member\+\_\+of$<$ M T\+::$\ast$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1meta__type}{meta\+\_\+type}}
\item 
struct \mbox{\hyperlink{structkblib_1_1meta__type_3_01_t_01_4}{meta\+\_\+type$<$ T $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1metafunction__success}{metafunction\+\_\+success}}
\item 
struct \mbox{\hyperlink{structkblib_1_1metafunction__success_3_01_t_00_01void__t_3_01typename_01_t_1_1type_01_4_01_4}{metafunction\+\_\+success$<$ T, void\+\_\+t$<$ typename T\+::type $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1nums_1_1min__t}{min\+\_\+t}}
\begin{DoxyCompactList}\small\item\em Shorthand for \mbox{\hyperlink{namespacekblib_1_1nums_a24555c4b07301e176bf192adf4e80499}{std\+::numeric\+\_\+limits\+::min()}} \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkblib_1_1multi__range}{multi\+\_\+range}}
\item 
class \mbox{\hyperlink{classkblib_1_1multi__range_3_01_iter1_00_01_end_iter_00_010_01_4}{multi\+\_\+range$<$ Iter1, End\+Iter, 0 $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1multi__span}{multi\+\_\+span}}
\item 
struct \mbox{\hyperlink{structkblib_1_1null__construct}{null\+\_\+construct}}
\item 
struct \mbox{\hyperlink{structkblib_1_1null__construct_3_01_t_00_01true_01_4}{null\+\_\+construct$<$ T, true $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1padding__bits}{padding\+\_\+bits}}
\item 
class \mbox{\hyperlink{classkblib_1_1poly__obj}{poly\+\_\+obj}}
\begin{DoxyCompactList}\small\item\em Inline polymorphic object. Generally mimics the interfaces of std\+::optional and std\+::variant. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1poly__obj__traits}{poly\+\_\+obj\+\_\+traits}}
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{structkblib_1_1poly__obj__traits}{poly\+\_\+obj\+\_\+traits}} is a traits class template which abstracts the allowed operations on a polymorphic type hierarchy. Any operation allowed by the traits must be usable for the entire hierarchy, not just the base class. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1punner}{punner}}
\item 
struct \mbox{\hyperlink{structkblib_1_1_r_a_i_i__wrapper}{RAII\+\_\+wrapper}}
\item 
class \mbox{\hyperlink{classkblib_1_1range__t}{range\+\_\+t}}
\begin{DoxyCompactList}\small\item\em A range generator, similar to Python 3\textquotesingle{}s \mbox{\hyperlink{namespacekblib_a72690688922a2d4ae9a3e46ff0c1a9a9}{range()}}. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1return__assert}{return\+\_\+assert}}
\begin{DoxyCompactList}\small\item\em Essentially just like std\+::enable\+\_\+if, but with a different name that makes it clearer what it does in the context of return type SFINAE. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1return__assert_3_01true_00_01_t_01_4}{return\+\_\+assert$<$ true, T $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1return__type}{return\+\_\+type}}
\item 
struct \mbox{\hyperlink{structkblib_1_1return__type_3_01_r_07_args_8_8_8_08_01const_01_4}{return\+\_\+type$<$ R(\+Args...) const $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1return__type_3_01_r_07_args_8_8_8_08_01const_01volatile_01_4}{return\+\_\+type$<$ R(\+Args...) const volatile $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1return__type_3_01_r_07_args_8_8_8_08_01volatile_01_4}{return\+\_\+type$<$ R(\+Args...) volatile $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1return__type_3_01_r_07_args_8_8_8_08_4}{return\+\_\+type$<$ R(\+Args...)$>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1safe__signed}{safe\+\_\+signed}}
\item 
struct \mbox{\hyperlink{structkblib_1_1safe__signed_3_01_n_00_01std_1_1enable__if__t_3_01std_1_1is__integral_3_01_n_01_4_1_1value_00_01void_01_4_01_4}{safe\+\_\+signed$<$ N, std\+::enable\+\_\+if\+\_\+t$<$ std\+::is\+\_\+integral$<$ N $>$\+::value, void $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1shift__mask}{shift\+\_\+mask}}
\item 
class \mbox{\hyperlink{classkblib_1_1sparse__trie__map}{sparse\+\_\+trie\+\_\+map}}
\item 
class \mbox{\hyperlink{classkblib_1_1sparse__trie__set}{sparse\+\_\+trie\+\_\+set}}
\item 
class \mbox{\hyperlink{classkblib_1_1stack}{stack}}
\item 
struct \mbox{\hyperlink{structkblib_1_1state__size}{state\+\_\+size}}
\item 
struct \mbox{\hyperlink{structkblib_1_1state__size_3_01std_1_1discard__block__engine_3_01_engine_00_01_p_00_01_r_01_4_01_4}{state\+\_\+size$<$ std\+::discard\+\_\+block\+\_\+engine$<$ Engine, P, R $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1state__size_3_01std_1_1independent__bits__engine_3_01_engine_00_01_w_00_01_u_int_type_01_4_01_4}{state\+\_\+size$<$ std\+::independent\+\_\+bits\+\_\+engine$<$ Engine, W, UInt\+Type $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1state__size_3_01std_1_1linear__congruential__engine_3_01_u_int_type_00_01a_00_01c_00_01m_01_4_01_4}{state\+\_\+size$<$ std\+::linear\+\_\+congruential\+\_\+engine$<$ UInt\+Type, a, c, m $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1state__size_3_01std_1_1mersenne__twister__engine_3_01_u_int_type_00_01w_00_01n_001aa3a5268fdc817f552102aaa663250b}{state\+\_\+size$<$ std\+::mersenne\+\_\+twister\+\_\+engine$<$ UInt\+Type, w, n, m, r, a, u, d, s, b, t, c, l, f $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1state__size_3_01std_1_1shuffle__order__engine_3_01_engine_00_01_k_01_4_01_4}{state\+\_\+size$<$ std\+::shuffle\+\_\+order\+\_\+engine$<$ Engine, K $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1state__size_3_01std_1_1subtract__with__carry__engine_3_01_u_int_type_00_01w_00_01s_00_01r_01_4_01_4}{state\+\_\+size$<$ std\+::subtract\+\_\+with\+\_\+carry\+\_\+engine$<$ UInt\+Type, w, s, r $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1state__size_3_01transform__engine_3_01_engine_00_01_transform_01_4_01_4}{state\+\_\+size$<$ transform\+\_\+engine$<$ Engine, Transform $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1to__pointer__impl}{to\+\_\+pointer\+\_\+impl}}
\item 
struct \mbox{\hyperlink{structkblib_1_1to__pointer__impl_3_01_t_01_5_01_4}{to\+\_\+pointer\+\_\+impl$<$ T $\ast$ $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1transform__engine}{transform\+\_\+engine}}
\item 
class \mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}}
\begin{DoxyCompactList}\small\item\em An Input\+Iterator that applies a transformation to the elements of the range. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkblib_1_1trie}{trie}}
\item 
class \mbox{\hyperlink{classkblib_1_1trie_3_01_key_elem_00_01_t_00_01_extractor_00_01false_01_4}{trie$<$ Key\+Elem, T, Extractor, false $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1trie_3_01_key_elem_0f_0e_00_01_t_00_01_extractor_00_01false_01_4}{trie$<$ Key\+Elem\mbox{[}$\,$\mbox{]}, T, Extractor, false $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1trie__map}{trie\+\_\+map}}
\item 
class \mbox{\hyperlink{classkblib_1_1trie__qmap}{trie\+\_\+qmap}}
\item 
class \mbox{\hyperlink{classkblib_1_1trie__qset}{trie\+\_\+qset}}
\item 
class \mbox{\hyperlink{classkblib_1_1trie__set}{trie\+\_\+set}}
\item 
struct \mbox{\hyperlink{structkblib_1_1trivial__array}{trivial\+\_\+array}}
\begin{DoxyCompactList}\small\item\em std\+::array isn\textquotesingle{}t constexpr enough in C++14, so a dedicated array class is needed for constexpr functions. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1trivial__pair}{trivial\+\_\+pair}}
\begin{DoxyCompactList}\small\item\em std\+::pair isn\textquotesingle{}t constexpr enough, so I\textquotesingle{}m stuck with this. All I use it for is removing a temporary variable from \mbox{\hyperlink{namespacekblib_a90baddc76df99c83665b9fa3d45609e2}{calc\+\_\+fib\+\_\+size()}}. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classkblib_1_1trivial__seed__seq}{trivial\+\_\+seed\+\_\+seq}}
\item 
struct \mbox{\hyperlink{structkblib_1_1type__constant}{type\+\_\+constant}}
\item 
struct \mbox{\hyperlink{structkblib_1_1unicode__widen}{unicode\+\_\+widen}}
\item 
struct \mbox{\hyperlink{structkblib_1_1unicode__widen_3_01char16__t_00_01char32__t_01_4}{unicode\+\_\+widen$<$ char16\+\_\+t, char32\+\_\+t $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1union__pun}{union\+\_\+pun}}
\item 
class \mbox{\hyperlink{classkblib_1_1union__pun_3_01_type_0f_n_0e_00_01_storage_01_4}{union\+\_\+pun$<$ Type\mbox{[}\+N\mbox{]}, Storage $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1value__detected}{value\+\_\+detected}}
\item 
struct \mbox{\hyperlink{structkblib_1_1value__detected_3_01_t_00_01void__t_3_01typename_01_t_1_1value__type_01_4_01_4}{value\+\_\+detected$<$ T, void\+\_\+t$<$ typename T\+::value\+\_\+type $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1value__type__linear}{value\+\_\+type\+\_\+linear}}
\item 
struct \mbox{\hyperlink{structkblib_1_1value__type__linear_3_01_container_00_01false_00_01typename_01_container_1_1value__type_01_4}{value\+\_\+type\+\_\+linear$<$ Container, false, typename Container\+::value\+\_\+type $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1visitor}{visitor}}
\begin{DoxyCompactList}\small\item\em Helper class for std\+::visiting a std\+::variant. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structkblib_1_1void__if}{void\+\_\+if}}
\item 
struct \mbox{\hyperlink{structkblib_1_1void__if_3_01true_01_4}{void\+\_\+if$<$ true $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1zip__iterator}{zip\+\_\+iterator}}
\item 
struct \mbox{\hyperlink{structkblib_1_1zip__iterator_3_01_it1_00_01_it1_00_01_it2_01_4}{zip\+\_\+iterator$<$ It1, It1, It2 $>$}}
\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$bool B, typename T  = void$>$ }\\using \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}} = typename std\+::enable\+\_\+if$<$ B, T $>$\+::type
\item 
{\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespacekblib_a9dcf2233bc360ff26fbbf82d98cdc64d}{decay\+\_\+t}} = typename std\+::decay$<$ T $>$\+::type
\item 
{\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespacekblib_ad3067cf43d6c4d6d61e9bbb81c145cf9}{remove\+\_\+cvref\+\_\+t}} = typename std\+::remove\+\_\+reference$<$ typename std\+::remove\+\_\+cv$<$ T $>$\+::type $>$\+::type
\item 
{\footnotesize template$<$bool v$>$ }\\using \mbox{\hyperlink{namespacekblib_aab6846d277428f1e4b61ced2ed64dd0b}{bool\+\_\+constant}} = std\+::integral\+\_\+constant$<$ bool, v $>$
\item 
{\footnotesize template$<$typename... Ts$>$ }\\using \mbox{\hyperlink{namespacekblib_af9d6c610a6e855aa1eba054060166247}{meta\+\_\+type\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1meta__type}{meta\+\_\+type}}$<$ Ts... $>$\+::type
\item 
{\footnotesize template$<$bool b$>$ }\\using \mbox{\hyperlink{namespacekblib_ab3cc24416f0b9a6504e1c6a437ed6230}{void\+\_\+if\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1void__if}{void\+\_\+if}}$<$ b $>$\+::type
\item 
{\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespacekblib_a5d358e0474506e99331fde45ce81f78f}{metafunction\+\_\+value\+\_\+t}} = std\+::integral\+\_\+constant$<$ decltype(T\+::value), T\+::value $>$
\item 
{\footnotesize template$<$bool V, typename T $>$ }\\using \mbox{\hyperlink{namespacekblib_acdb4473ef9196a18a0e37e05171729f0}{return\+\_\+assert\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1return__assert}{return\+\_\+assert}}$<$ V, T $>$\+::type
\item 
{\footnotesize template$<$typename N $>$ }\\using \mbox{\hyperlink{namespacekblib_ace81df18accc355bebf9245f09107b51}{safe\+\_\+signed\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1safe__signed}{safe\+\_\+signed}}$<$ N $>$\+::type
\item 
{\footnotesize template$<$typename C , typename V $>$ }\\using \mbox{\hyperlink{namespacekblib_af973fdd9c2dddf6db3744ae83902fc72}{copy\+\_\+const\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1copy__const}{copy\+\_\+const}}$<$ C, V $>$\+::type
\item 
{\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespacekblib_aa0f56c295f64726c092c84a77f025a85}{value\+\_\+detected\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1value__detected}{value\+\_\+detected}}$<$ T $>$\+::type
\item 
{\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespacekblib_ac84fd1f7586e640147679a7c24a746d8}{key\+\_\+detected\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1key__detected}{key\+\_\+detected}}$<$ T $>$\+::type
\item 
{\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespacekblib_aea08f7e56313388f4681f002a13793ba}{mapped\+\_\+detected\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1mapped__detected}{mapped\+\_\+detected}}$<$ T $>$\+::type
\item 
{\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespacekblib_a73fd7f69e7f6233d2c480a16e86b03a0}{hash\+\_\+detected\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1hash__detected}{hash\+\_\+detected}}$<$ T $>$\+::type
\item 
{\footnotesize template$<$typename Container $>$ }\\using \mbox{\hyperlink{namespacekblib_ac04bc7261d579d570a3847df654bc209}{value\+\_\+type\+\_\+linear\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1value__type__linear}{value\+\_\+type\+\_\+linear}}$<$ Container $>$\+::type
\item 
{\footnotesize template$<$typename Container $>$ }\\using \mbox{\hyperlink{namespacekblib_a08c333aaa30dec55fb9d3e7d616093bd}{key\+\_\+type\+\_\+setlike\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1key__type__setlike}{key\+\_\+type\+\_\+setlike}}$<$ Container $>$\+::type
\item 
{\footnotesize template$<$typename Key $>$ }\\using \mbox{\hyperlink{namespacekblib_a681dc40a3f4186fdbc876b705fd65f99}{FNV32\+\_\+hash}} = \mbox{\hyperlink{structkblib_1_1_f_n_v__hash}{FNV\+\_\+hash}}$<$ Key, std\+::uint32\+\_\+t $>$
\item 
{\footnotesize template$<$typename Key , typename Value $>$ }\\using \mbox{\hyperlink{namespacekblib_ae9d0249375b4e261279715b4e50e9bb3}{hash\+\_\+map}} = std\+::unordered\+\_\+map$<$ Key, Value, \mbox{\hyperlink{structkblib_1_1_f_n_v__hash}{FNV\+\_\+hash}}$<$$>$, std\+::equal\+\_\+to$<$$>$ $>$
\item 
{\footnotesize template$<$typename Key , typename Value $>$ }\\using \mbox{\hyperlink{namespacekblib_a238473bf3e5a7dcc451d6ff80fd883e0}{hash\+\_\+multimap}} = std\+::unordered\+\_\+multimap$<$ Key, Value, \mbox{\hyperlink{structkblib_1_1_f_n_v__hash}{FNV\+\_\+hash}}$<$$>$, std\+::equal\+\_\+to$<$$>$ $>$
\item 
{\footnotesize template$<$typename T , typename Hash\+Int $>$ }\\using \mbox{\hyperlink{namespacekblib_aba444e91f374258eb8f1594e19d54886}{hash\+\_\+set}} = std\+::unordered\+\_\+set$<$ T, \mbox{\hyperlink{structkblib_1_1_f_n_v__hash}{FNV\+\_\+hash}}$<$$>$, std\+::equal\+\_\+to$<$$>$ $>$
\item 
{\footnotesize template$<$typename T , typename Hash\+Int $>$ }\\using \mbox{\hyperlink{namespacekblib_aa5f6657aa0507d58dd3eab4b0b9fc446}{hash\+\_\+multiset}} = std\+::unordered\+\_\+set$<$ T, \mbox{\hyperlink{structkblib_1_1_f_n_v__hash}{FNV\+\_\+hash}}$<$$>$, std\+::equal\+\_\+to$<$$>$ $>$
\item 
{\footnotesize template$<$typename Obj $>$ }\\using \mbox{\hyperlink{namespacekblib_a5695499e50b8ae6a0308bd845774728f}{move\+\_\+only\+\_\+traits}} = \mbox{\hyperlink{structkblib_1_1poly__obj__traits}{poly\+\_\+obj\+\_\+traits}}$<$ Obj, \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa3734a903022249b3010be1897042568e}{construct\+\_\+type\+::move}} $>$
\item 
{\footnotesize template$<$typename Obj $>$ }\\using \mbox{\hyperlink{namespacekblib_a1f329c91b6941e2cc765d59100b34749}{no\+\_\+move\+\_\+traits}} = \mbox{\hyperlink{structkblib_1_1poly__obj__traits}{poly\+\_\+obj\+\_\+traits}}$<$ Obj, \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa334c4a4c42fdb79d7ebc3e73b517e6f8}{construct\+\_\+type\+::none}} $>$
\item 
{\footnotesize template$<$typename UInt\+Type , UInt\+Type a, UInt\+Type c, UInt\+Type b$>$ }\\using \mbox{\hyperlink{namespacekblib_1_1lcgs_af914852ecbe5eada9a34db51c5f5cc1f}{lcg\+\_\+p2}} = std\+::linear\+\_\+congruential\+\_\+engine$<$ UInt\+Type, \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, c, \mbox{\hyperlink{namespacekblib_a5a9fb5dbd7082695242567ef3bdfe89c}{ipow2}}(b)$>$
\item 
using \mbox{\hyperlink{namespacekblib_1_1lcgs_1_1common__lcgs_adaa60c018d398bb950f65b173d86e9b6}{rand48}} = \mbox{\hyperlink{classkblib_1_1transform__engine}{transform\+\_\+engine}}$<$ \mbox{\hyperlink{namespacekblib_1_1lcgs_af914852ecbe5eada9a34db51c5f5cc1f}{lcg\+\_\+p2}}$<$ std\+::uint\+\_\+fast64\+\_\+t, 25214903917u, 11u, 48u $>$, \mbox{\hyperlink{structkblib_1_1shift__mask}{shift\+\_\+mask}}$<$ std\+::uint\+\_\+fast32\+\_\+t, 16u $>$ $>$
\item 
using \mbox{\hyperlink{namespacekblib_1_1lcgs_1_1common__lcgs_a071dc57b04c71a980f66921ab268e13f}{java\+\_\+rand}} = \mbox{\hyperlink{namespacekblib_1_1lcgs_1_1common__lcgs_adaa60c018d398bb950f65b173d86e9b6}{rand48}}
\item 
using \mbox{\hyperlink{namespacekblib_1_1lcgs_1_1common__lcgs_ad24856b64aaf15c7ca9850a32d769b0a}{glibc\+\_\+rand0}} = \mbox{\hyperlink{classkblib_1_1transform__engine}{transform\+\_\+engine}}$<$ \mbox{\hyperlink{namespacekblib_1_1lcgs_af914852ecbe5eada9a34db51c5f5cc1f}{lcg\+\_\+p2}}$<$ std\+::uint\+\_\+fast32\+\_\+t, 1103515245, 12345, 31u $>$, \mbox{\hyperlink{structkblib_1_1shift__mask}{shift\+\_\+mask}}$<$ std\+::uint\+\_\+fast32\+\_\+t, 0, \mbox{\hyperlink{namespacekblib_a5a9fb5dbd7082695242567ef3bdfe89c}{ipow2}}(30) -\/ 1 $>$ $>$
\item 
using \mbox{\hyperlink{namespacekblib_1_1lcgs_1_1common__lcgs_ad990fdc385e29a01cf7592c042eed05e}{ansic\+\_\+rand}} = \mbox{\hyperlink{classkblib_1_1transform__engine}{transform\+\_\+engine}}$<$ \mbox{\hyperlink{namespacekblib_1_1lcgs_af914852ecbe5eada9a34db51c5f5cc1f}{lcg\+\_\+p2}}$<$ std\+::uint\+\_\+fast32\+\_\+t, 1103515245, 12345, 31u $>$, \mbox{\hyperlink{structkblib_1_1shift__mask}{shift\+\_\+mask}}$<$ std\+::uint\+\_\+fast32\+\_\+t, 16, \mbox{\hyperlink{namespacekblib_a5a9fb5dbd7082695242567ef3bdfe89c}{ipow2}}(14) -\/ 1 $>$ $>$
\item 
using \mbox{\hyperlink{namespacekblib_1_1lcgs_1_1common__lcgs_a3ad3ced72aa1cb9b9a3e4cbd984c3839}{knuth\+\_\+lcg}} = std\+::linear\+\_\+congruential\+\_\+engine$<$ uint64\+\_\+t, 6364136223846793005U, 1442695040888963407U, 0U $>$
\item 
using \mbox{\hyperlink{namespacekblib_1_1lcgs_1_1best__lcgs_ab60a688256bee47233387411e5afd7fe}{lcg32}} = \mbox{\hyperlink{namespacekblib_1_1lcgs_af914852ecbe5eada9a34db51c5f5cc1f}{lcg\+\_\+p2}}$<$ std\+::uint\+\_\+fast32\+\_\+t, 0xa13fc965u, 1u, 32u $>$
\item 
using \mbox{\hyperlink{namespacekblib_1_1lcgs_1_1best__lcgs_ab5965534219bd68a26722774684acd60}{mcg32}} = \mbox{\hyperlink{namespacekblib_1_1lcgs_af914852ecbe5eada9a34db51c5f5cc1f}{lcg\+\_\+p2}}$<$ std\+::uint\+\_\+fast32\+\_\+t, 0x93d765ddu, 0u, 32u $>$
\item 
using \mbox{\hyperlink{namespacekblib_1_1lcgs_1_1best__lcgs_aa55fbc84bf1ec46b260eb49216346a4e}{lcg48}} = \mbox{\hyperlink{namespacekblib_1_1lcgs_af914852ecbe5eada9a34db51c5f5cc1f}{lcg\+\_\+p2}}$<$ std\+::uint\+\_\+fast64\+\_\+t, 0xb67a49a5466du, 1u, 48u $>$
\item 
using \mbox{\hyperlink{namespacekblib_1_1lcgs_1_1best__lcgs_a3e2b07fbd94b01abf25d1904fe9992f7}{mcg48}} = \mbox{\hyperlink{namespacekblib_1_1lcgs_af914852ecbe5eada9a34db51c5f5cc1f}{lcg\+\_\+p2}}$<$ std\+::uint\+\_\+fast64\+\_\+t, 0xbdcdbb079f8du, 0u, 48u $>$
\item 
using \mbox{\hyperlink{namespacekblib_1_1lcgs_1_1best__lcgs_afe793993d3d6cba804a0a4bcf6bd5529}{lcg64}} = \mbox{\hyperlink{namespacekblib_1_1lcgs_af914852ecbe5eada9a34db51c5f5cc1f}{lcg\+\_\+p2}}$<$ std\+::uint\+\_\+fast64\+\_\+t, 0xaf251af3b0f025b5u, 1u, 64u $>$
\item 
using \mbox{\hyperlink{namespacekblib_1_1lcgs_1_1best__lcgs_a52e7c8798d17e80f55ebe006b4ec1e6d}{mcg64}} = \mbox{\hyperlink{namespacekblib_1_1lcgs_af914852ecbe5eada9a34db51c5f5cc1f}{lcg\+\_\+p2}}$<$ std\+::uint\+\_\+fast64\+\_\+t, 0xf1357aea2e62a9c5u, 0u, 64u $>$
\item 
{\footnotesize template$<$std\+::uintmax\+\_\+t I$>$ }\\using \mbox{\hyperlink{namespacekblib_af598d7431e3f5b0be999dc7cb1ddca42}{uint\+\_\+smallest}} = typename \mbox{\hyperlink{structkblib_1_1first__bigger__than}{first\+\_\+bigger\+\_\+than}}$<$ 1+\mbox{\hyperlink{namespacekblib_a5633a966716e66c8230d039c7615e393}{filg2}}(I)/CHAR\+\_\+\+BIT, unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long, std\+::uintmax\+\_\+t $>$\+::type
\item 
{\footnotesize template$<$std\+::uintmax\+\_\+t I$>$ }\\using \mbox{\hyperlink{namespacekblib_a01bce53d45632d6f32fe5af269533805}{int\+\_\+smallest}} = typename \mbox{\hyperlink{structkblib_1_1first__bigger__than}{first\+\_\+bigger\+\_\+than}}$<$ 1+(\mbox{\hyperlink{namespacekblib_a5633a966716e66c8230d039c7615e393}{filg2}}(I)+1)/CHAR\+\_\+\+BIT, signed char, signed short, signed int, signed long, signed long long, std\+::uintmax\+\_\+t $>$\+::type
\item 
{\footnotesize template$<$std\+::uintmax\+\_\+t I$>$ }\\using \mbox{\hyperlink{namespacekblib_af6581571367a6b54af65b1174c2f416f}{uint\+\_\+smallest\+\_\+t}} = typename \mbox{\hyperlink{namespacekblib_af598d7431e3f5b0be999dc7cb1ddca42}{uint\+\_\+smallest}}$<$ I $>$\+::type
\item 
{\footnotesize template$<$std\+::uintmax\+\_\+t I$>$ }\\using \mbox{\hyperlink{namespacekblib_a54235123af1b79489fb0484fc64318ff}{int\+\_\+smallest\+\_\+t}} = typename \mbox{\hyperlink{namespacekblib_a01bce53d45632d6f32fe5af269533805}{int\+\_\+smallest}}$<$ I $>$\+::type
\item 
{\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{alias}} = T
\begin{DoxyCompactList}\small\item\em A simple identity alias for simplifying some compound type declarations, such as function pointers. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename U , typename T $>$ }\\using \mbox{\hyperlink{namespacekblib_a3cec35675700d7e15c9139e0497768e6}{ignore\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1ignore}{ignore}}$<$ U, T $>$\+::type
\begin{DoxyCompactList}\small\item\em An alias for \mbox{\hyperlink{structkblib_1_1ignore_aa8afaf19eb6bad07fa899e99a05e845a}{ignore$<$\+U, T$>$\+::type}}. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespacekblib_ac0d673e8dfabd5fe1fe4d89a08be7019}{class\+\_\+of\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1class__of}{class\+\_\+of}}$<$ T $>$\+::type
\item 
{\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespacekblib_a8944b438ec39c111c64a1e8501fd7828}{member\+\_\+of\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1member__of}{member\+\_\+of}}$<$ T $>$\+::type
\item 
{\footnotesize template$<$typename Range $>$ }\\using \mbox{\hyperlink{namespacekblib_a50228da6d1f395258a03db48257305d0}{iterator\+\_\+type\+\_\+for\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1iterator__type__for}{iterator\+\_\+type\+\_\+for}}$<$ Range $>$\+::type
\item 
{\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespacekblib_a4be602e9cbe25a984f76f7a66a0466cd}{remove\+\_\+reference\+\_\+t}} = typename std\+::remove\+\_\+reference$<$ T $>$\+::type
\begin{DoxyCompactList}\small\item\em Abbreviated name for std\+::remove\+\_\+reference$<$\+T$>$\+::type for C++14. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container $>$ }\\using \mbox{\hyperlink{namespacekblib_a0ec1db9166c1c7928e764aa17e4f01e6}{default\+\_\+extractor\+\_\+t}} = typename std\+::conditional$<$ \mbox{\hyperlink{structkblib_1_1extractor__policy__for}{extractor\+\_\+policy\+\_\+for}}$<$ Container $>$\+::value==\mbox{\hyperlink{namespacekblib_a54f01b64a070a7f3e916ec21e1d0145fa298bbb8f070170fc998ccac67856211b}{extractor\+\_\+policy\+::random\+\_\+access}}, \mbox{\hyperlink{structkblib_1_1indexer__extractor}{indexer\+\_\+extractor}}$<$ Container $>$, \mbox{\hyperlink{structkblib_1_1iterator__extractor}{iterator\+\_\+extractor}}$<$ Container $>$ $>$\+::type
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum class \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}} \+: unsigned \{ \newline
\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa334c4a4c42fdb79d7ebc3e73b517e6f8}{none}} = 0
, \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa849f12a705c6dbc3ff5da992d47a9982}{copy\+\_\+only}} = 1
, \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa3734a903022249b3010be1897042568e}{move}} = 2
, \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aaf6cb3e816496528d4187db53bc66567f}{both}} = 3
, \newline
\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa04d3c750404e3d492d5d7d920189aa52}{throw\+\_\+move}} = 4
, \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aab009e0a1fa84b4e6e58f4ea7acba9712}{both\+\_\+throw}} = 5
 \}
\item 
enum class \mbox{\hyperlink{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694}{endian}} \{ \mbox{\hyperlink{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694aad921d60486366258809553a3db49a4a}{unknown}}
, \mbox{\hyperlink{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694aaae6635e044ac56046b2893a529b5114}{little}}
, \mbox{\hyperlink{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694ad861877da56b8b4ceb35c8cbfdf65bb4}{big}}
, \mbox{\hyperlink{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694a498c381ba18fc1be2160719e3e0a7c45}{weird}}
 \}
\item 
enum class \mbox{\hyperlink{namespacekblib_a54f01b64a070a7f3e916ec21e1d0145f}{extractor\+\_\+policy}} \{ \mbox{\hyperlink{namespacekblib_a54f01b64a070a7f3e916ec21e1d0145fa982690af3684bc526ae7a353bc6ef61e}{forward\+\_\+iteration}}
, \mbox{\hyperlink{namespacekblib_a54f01b64a070a7f3e916ec21e1d0145fa298bbb8f070170fc998ccac67856211b}{random\+\_\+access}}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename Callable $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_afc6af3c7ee821bb25dd692bd2fc92adb}{repeat}} (std\+::size\+\_\+t N, Callable func) noexcept(noexcept(func())) -\/$>$ \mbox{\hyperlink{namespacekblib_acdb4473ef9196a18a0e37e05171729f0}{return\+\_\+assert\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1fakestd_1_1is__invocable}{is\+\_\+invocable}}$<$ Callable $>$\+::value, void $>$
\begin{DoxyCompactList}\small\item\em Invoke a function N times. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , typename Elem $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_aa760b40ea7f60976c66be6d77345317b}{erase}} (Container \&c, const Elem \&val) noexcept(noexcept(c.\+erase(std\+::remove(c.\+begin(), c.\+end(), val), c.\+end()))) -\/$>$ void
\begin{DoxyCompactList}\small\item\em Abbreviation of the erase-\/remove idiom as a free function. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_aa1240cf764c5182f37ab5b5051f90b40}{erase\+\_\+if}} (Container \&c, Unary\+Predicate p) noexcept(noexcept(c.\+erase(std\+::remove\+\_\+if(c.\+begin(), c.\+end(), std\+::ref(p)), c.\+end()))) -\/$>$ void
\begin{DoxyCompactList}\small\item\em Abbreviation of the erase-\/remove idiom as a free function. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Obj $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a69f8d0752435e17b0c99ece2a5b599bb}{equals}} (const Obj \&\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, const Obj \&b) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}$<$ b)) -\/$>$ bool
\begin{DoxyCompactList}\small\item\em Synthesize an equivalence relation from \texorpdfstring{$<$}{<}. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Obj , typename Compare $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a20a98aa6b6876ad518d999ed85864a85}{equals}} (const Obj \&\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, const Obj \&b, Compare comp) noexcept(noexcept(comp(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, b))) -\/$>$ bool
\begin{DoxyCompactList}\small\item\em Synthesize an equivalence relation from comp. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It , typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_abedf2e5c556e6ab3ebb779227172a2ac}{accumulate}} (Input\+It first, Input\+It last, T init) -\/$>$ T
\begin{DoxyCompactList}\small\item\em A constexpr version of std\+::accumulate. \end{DoxyCompactList}\item 
{\footnotesize template$<$class Input\+It , class T , class Binary\+Operation $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a144f3d9a7e4b619bc53fbaf5e356c0c2}{accumulate}} (Input\+It first, Input\+It last, T init, Binary\+Operation op) -\/$>$ T
\begin{DoxyCompactList}\small\item\em A constexpr version of std\+::accumulate. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ab0380312efcdc59f34b028e698c265dc}{sum}} (Input\+It first, Input\+It last) -\/$>$ std\+::decay\+\_\+t$<$ decltype($\ast$first)$>$
\begin{DoxyCompactList}\small\item\em Sum a range. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It , typename Binary\+Operation $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ae86453386b48c0a0ad1b43938e4f7022}{sum}} (Input\+It first, Input\+It last, Binary\+Operation op) -\/$>$ std\+::decay\+\_\+t$<$ decltype($\ast$first)$>$
\begin{DoxyCompactList}\small\item\em Fold a range over an operation. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Range $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ac8b5f9fd83c3ec829e9ee86c2c7424f1}{sum}} (Range \&\&r) -\/$>$ auto
\begin{DoxyCompactList}\small\item\em Sum a range. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It , typename End\+It , typename Output\+It , typename T , typename Binary\+Accumulation , typename Unary\+Transform $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_aa51ef49b30290e4d7d6f7201e58560c1}{transform\+\_\+exclusive\+\_\+scan}} (Input\+It first, End\+It last, Output\+It d\+\_\+first, T init, Binary\+Accumulation accum, Unary\+Transform proj) -\/$>$ Output\+It
\item 
{\footnotesize template$<$typename Forward\+It , typename End\+It , typename Elem $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_abc7f2ec97efdee8640fe38e73fe1fdad}{find}} (Forward\+It begin, End\+It end, const Elem \&value) noexcept(noexcept($\ast$begin==value)) -\/$>$ Forward\+It
\begin{DoxyCompactList}\small\item\em Finds a value in range \mbox{[}begin, end). If not found, returns end. It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Forward\+It , typename End\+It , typename Elem , typename Comp $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a7cb44e374b0d5edb7ebce7e1a4e9862d}{find}} (Forward\+It begin, End\+It end, const Elem \&value, Comp \&\&comp) noexcept(noexcept(comp($\ast$begin, value))) -\/$>$ Forward\+It
\begin{DoxyCompactList}\small\item\em Finds a value in range \mbox{[}begin, end). If not found, returns end. It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Forward\+It , typename End\+It , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a4b49eacc73a9295677cb08d9b7892ff6}{find\+\_\+if}} (Forward\+It begin, End\+It end, Unary\+Predicate \&\&pred) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(pred, $\ast$begin))) -\/$>$ Forward\+It
\begin{DoxyCompactList}\small\item\em Finds the first value in range \mbox{[}begin, end) for which pred returns true. If not found, returns end. It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Forward\+It , typename End\+It , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ac30ce90c5b10639c0243952248897b51}{find\+\_\+if\+\_\+not}} (Forward\+It begin, End\+It end, Unary\+Predicate \&\&pred) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(pred, $\ast$begin))) -\/$>$ Forward\+It
\begin{DoxyCompactList}\small\item\em Finds the first value in range \mbox{[}begin, end) for which pred returns false. If not found, returns end. It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Forward\+It , typename End\+It , typename Elem $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a985430339c0a2e1100d0c77faa47806f}{find\+\_\+last}} (Forward\+It begin, End\+It end, const Elem \&value) noexcept(noexcept($\ast$begin==value)) -\/$>$ Forward\+It
\begin{DoxyCompactList}\small\item\em Searches a range for the last occurence of a match, and returns an iterator to it. It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Forward\+It , typename End\+It , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_afdfe60b4f1096a9f60d07cdfb4b5e427}{find\+\_\+last\+\_\+if}} (Forward\+It begin, End\+It end, Unary\+Predicate pred) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(pred, $\ast$begin))) -\/$>$ Forward\+It
\begin{DoxyCompactList}\small\item\em Searches a range for the last element on which a predicate returns true. It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Forward\+It , typename End\+It , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a1782641d7170a2ef57145e460fe059be}{find\+\_\+last\+\_\+if\+\_\+not}} (Forward\+It begin, End\+It end, Unary\+Predicate pred) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(pred, $\ast$begin))) -\/$>$ Forward\+It
\begin{DoxyCompactList}\small\item\em Searches a range for the last element on which a predicate returns false. It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Forward\+It , typename End\+It , typename Elem $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a6cc206fcdb4a68b8cb6e393b5039a575}{find\+\_\+in}} (Forward\+It begin, End\+It end, const Elem \&value) noexcept(noexcept($\ast$begin==value)) -\/$>$ size\+\_\+t
\begin{DoxyCompactList}\small\item\em Find the offset of the first ocurrence of v in a range from the beginning. It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Forward\+It , typename End\+It , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ae565c2bd3542ecc900319508c4204a0d}{find\+\_\+in\+\_\+if}} (Forward\+It begin, End\+It end, Unary\+Predicate pred) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(pred, $\ast$begin))) -\/$>$ size\+\_\+t
\begin{DoxyCompactList}\small\item\em Find the offset of the first element for which p returns true. It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Forward\+It , typename End\+It , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a104b402a896c7ba42eeb1ba513961cb6}{find\+\_\+in\+\_\+if\+\_\+not}} (Forward\+It begin, End\+It end, Unary\+Predicate pred) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(pred, $\ast$begin))) -\/$>$ size\+\_\+t
\begin{DoxyCompactList}\small\item\em Find the offset of the first element for which p returns false. It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Forward\+It , typename End\+It , typename Elem $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_add03c5bc4490749865e16dff9030aa24}{find\+\_\+last\+\_\+in}} (Forward\+It begin, End\+It end, const Elem \&value) noexcept(noexcept($\ast$begin==value)) -\/$>$ size\+\_\+t
\begin{DoxyCompactList}\small\item\em Find the offset of the last ocurrence of v in a range from the beginning. It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Forward\+It , typename End\+It , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a45b776be68227a2b794c1345a3101df7}{find\+\_\+last\+\_\+in\+\_\+if}} (Forward\+It begin, End\+It end, Unary\+Predicate pred) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(pred, $\ast$begin))) -\/$>$ size\+\_\+t
\item 
{\footnotesize template$<$typename Forward\+It , typename End\+It , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a9b56a7bab2714ec861e909a930030cb6}{find\+\_\+last\+\_\+in\+\_\+if\+\_\+not}} (Forward\+It begin, End\+It end, Unary\+Predicate pred) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(pred, $\ast$begin))) -\/$>$ size\+\_\+t
\begin{DoxyCompactList}\small\item\em Find the offset of the last element for which p returns false. It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a4b840bb625a22f5dfd674050892d3be1}{find\+\_\+in}} (const Container \&c, const T \&value) noexcept(noexcept($\ast$std\+::declval$<$ \mbox{\hyperlink{namespacekblib_a50228da6d1f395258a03db48257305d0}{iterator\+\_\+type\+\_\+for\+\_\+t}}$<$ const Container $>$ \& $>$()==value)) -\/$>$ size\+\_\+t
\begin{DoxyCompactList}\small\item\em Find the first element in c equal to v and return the position. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ab9d81bc7ce57c24888b9eebce31b596c}{find\+\_\+in\+\_\+if}} (const Container \&c, Unary\+Predicate pred) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(pred, $\ast$std\+::declval$<$ \mbox{\hyperlink{namespacekblib_a50228da6d1f395258a03db48257305d0}{iterator\+\_\+type\+\_\+for\+\_\+t}}$<$ const Container $>$ \& $>$()))) -\/$>$ size\+\_\+t
\begin{DoxyCompactList}\small\item\em Find the first element in c for which p returns true and return the position. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ad66766d83405b85f422894329c1b0762}{find\+\_\+in\+\_\+if\+\_\+not}} (const Container \&c, Unary\+Predicate pred) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(pred, $\ast$std\+::declval$<$ \mbox{\hyperlink{namespacekblib_a50228da6d1f395258a03db48257305d0}{iterator\+\_\+type\+\_\+for\+\_\+t}}$<$ const Container $>$ \& $>$()))) -\/$>$ size\+\_\+t
\begin{DoxyCompactList}\small\item\em Find the first element in c for which p returns false and return the position. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a01ea69026c0c1b4403fd1f9e37bdf104}{find\+\_\+last\+\_\+in}} (const Container \&c, const T \&value) noexcept(noexcept($\ast$std\+::declval$<$ \mbox{\hyperlink{namespacekblib_a50228da6d1f395258a03db48257305d0}{iterator\+\_\+type\+\_\+for\+\_\+t}}$<$ const Container $>$ \& $>$()==value)) -\/$>$ size\+\_\+t
\begin{DoxyCompactList}\small\item\em Find the last element in c equal to v and return the position. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a5cf3311b51778825d242cc19ceacc619}{find\+\_\+last\+\_\+in\+\_\+if}} (const Container \&c, Unary\+Predicate pred) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(pred, $\ast$std\+::declval$<$ \mbox{\hyperlink{namespacekblib_a50228da6d1f395258a03db48257305d0}{iterator\+\_\+type\+\_\+for\+\_\+t}}$<$ const Container $>$ \& $>$()))) -\/$>$ size\+\_\+t
\begin{DoxyCompactList}\small\item\em Find the last element in c for which p returns true and return the position. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a7e88ca2c2fc0f9ee0a4731224ba4e0e4}{find\+\_\+last\+\_\+in\+\_\+if\+\_\+not}} (const Container \&c, Unary\+Predicate pred) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(pred, $\ast$std\+::declval$<$ \mbox{\hyperlink{namespacekblib_a50228da6d1f395258a03db48257305d0}{iterator\+\_\+type\+\_\+for\+\_\+t}}$<$ const Container $>$ \& $>$()))) -\/$>$ size\+\_\+t
\begin{DoxyCompactList}\small\item\em Find the last element in c for which p returns true and return the position. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename Binary\+Predicate  = std\+::equal\+\_\+to$<$$>$$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a85ee751e6068e1e86e93ef1cb34f2d1f}{find\+\_\+match}} (Input\+It1 begin1, End\+It1 end1, Input\+It2 begin2, Binary\+Predicate cmp) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It1 $>$\+::value and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It2 $>$\+::value and \mbox{\hyperlink{structkblib_1_1fakestd_1_1is__invocable}{is\+\_\+invocable}}$<$ Binary\+Predicate, decltype($\ast$begin1), decltype($\ast$begin2)$>$\+::value, std\+::pair$<$ Input\+It1, Input\+It2 $>$ $>$
\item 
{\footnotesize template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename End\+It2 , typename Binary\+Predicate  = std\+::equal\+\_\+to$<$$>$$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ae8e1b4d2193bbc1a7bd04aca85cdfe36}{find\+\_\+match}} (Input\+It1 begin1, End\+It1 end1, Input\+It2 begin2, End\+It2 end2, Binary\+Predicate cmp) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It1 $>$\+::value and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It2 $>$\+::value and \mbox{\hyperlink{structkblib_1_1fakestd_1_1is__invocable}{is\+\_\+invocable}}$<$ Binary\+Predicate, decltype($\ast$begin1), decltype($\ast$begin2)$>$\+::value, std\+::pair$<$ Input\+It1, Input\+It2 $>$ $>$
\item 
{\footnotesize template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename End\+It2 , typename Binary\+Pred $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a8cdb20ed932413236d054b256207b5e3}{starts\+\_\+with}} (Input\+It1 begin1, End\+It1 end1, Input\+It2 begin2, End\+It2 end2, Binary\+Pred pred) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$(\mbox{\hyperlink{namespacekblib_a38ad8c5b263ac766baf7ec36fe3b4a10}{is\+\_\+input\+\_\+iterator\+\_\+v}}$<$ Input\+It1 $>$ and \mbox{\hyperlink{namespacekblib_a38ad8c5b263ac766baf7ec36fe3b4a10}{is\+\_\+input\+\_\+iterator\+\_\+v}}$<$ Input\+It2 $>$) and not(\mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v}}$<$ Input\+It1 $>$ and \mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v}}$<$ Input\+It2 $>$), bool $>$
\begin{DoxyCompactList}\small\item\em Checks if a given range starts with a particular subrange. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Random\+Access\+It1 , typename Random\+Access\+It2 , typename Binary\+Pred  = std\+::equal\+\_\+to$<$$>$$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_aece8787c934d63869d013a3f5e15cc56}{starts\+\_\+with}} (Random\+Access\+It1 begin1, Random\+Access\+It1 end1, Random\+Access\+It2 begin2, Random\+Access\+It2 end2, Binary\+Pred pred=\{\}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v}}$<$ Random\+Access\+It1 $>$ and \mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v}}$<$ Random\+Access\+It2 $>$, bool $>$
\begin{DoxyCompactList}\small\item\em Checks if a given range starts with a particular subrange. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Bidir\+It1 , typename Bidir\+It2 , typename Binary\+Pred  = std\+::equal\+\_\+to$<$$>$$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a86b688283b8d950e84631a29f2351c77}{ends\+\_\+with}} (Bidir\+It1 begin1, Bidir\+It1 end1, Bidir\+It2 begin2, Bidir\+It2 end2, Binary\+Pred pred=\{\}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$(\mbox{\hyperlink{namespacekblib_ab4a90d7f7bacba9a52aea362f42af35f}{is\+\_\+bidirectional\+\_\+iterator\+\_\+v}}$<$ Bidir\+It1 $>$ and \mbox{\hyperlink{namespacekblib_ab4a90d7f7bacba9a52aea362f42af35f}{is\+\_\+bidirectional\+\_\+iterator\+\_\+v}}$<$ Bidir\+It2 $>$) and not(\mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v}}$<$ Bidir\+It1 $>$ and \mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v}}$<$ Bidir\+It2 $>$), bool $>$
\begin{DoxyCompactList}\small\item\em Checks if a given range ends with a particular subrange. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Random\+Access\+It1 , typename Random\+Access\+It2 , typename Binary\+Pred  = std\+::equal\+\_\+to$<$$>$$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a72257d3086cc368c6314f8013331915e}{ends\+\_\+with}} (Random\+Access\+It1 begin1, Random\+Access\+It1 end1, Random\+Access\+It2 begin2, Random\+Access\+It2 end2, Binary\+Pred pred=\{\}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v}}$<$ Random\+Access\+It1 $>$ and \mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v}}$<$ Random\+Access\+It2 $>$, bool $>$
\begin{DoxyCompactList}\small\item\em Checks if a given range ends with a particular subrange. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It , typename End\+It , typename T , typename Unary\+Transform $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a19c27b7a705228b485f3eec2a0605ba6}{first\+\_\+result}} (Input\+It begin, End\+It end, T def, Unary\+Transform op) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It $>$\+::value, std\+::decay\+\_\+t$<$ decltype(op($\ast$begin))$>$ $>$
\item 
{\footnotesize template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename T , typename Binary\+Transform $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a303620c746944b847de94534da396cd0}{first\+\_\+result}} (Input\+It1 begin1, End\+It1 end1, Input\+It2 begin2, T def, Binary\+Transform op) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It1 $>$\+::value and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It2 $>$\+::value, std\+::decay\+\_\+t$<$ decltype(op($\ast$begin1, $\ast$begin2))$>$ $>$
\item 
{\footnotesize template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename End\+It2 , typename T , typename Binary\+Transform $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a243dd4c94b862837cbcb3a21fc7c7850}{first\+\_\+result}} (Input\+It1 begin1, End\+It1 end1, Input\+It2 begin2, End\+It2 end2, T def, Binary\+Transform op) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It1 $>$\+::value and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It2 $>$\+::value, std\+::decay\+\_\+t$<$ decltype(op($\ast$begin1, $\ast$begin2))$>$ $>$
\item 
{\footnotesize template$<$typename Input\+It , typename End\+It , typename T , typename Unary\+Transform , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a50dd5af1197cf9f384b53fe0ea30eaf8}{first\+\_\+result\+\_\+if}} (Input\+It begin, End\+It end, T def, Unary\+Transform op, Unary\+Predicate ch) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It $>$\+::value, decltype(op($\ast$begin))$>$
\item 
{\footnotesize template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename T , typename Binary\+Transform , typename Binary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_afb43a77bbb2f42381d1c241d96fd01ba}{first\+\_\+result\+\_\+if}} (Input\+It1 begin1, End\+It1 end1, Input\+It2 begin2, T def, Binary\+Transform op, Binary\+Predicate ch) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It1 $>$\+::value and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It2 $>$\+::value, decltype(op($\ast$begin1, $\ast$begin2))$>$
\item 
{\footnotesize template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename End\+It2 , typename T , typename Binary\+Transform , typename Binary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a416854a4e20de3e66dc94a591b8fd709}{first\+\_\+result\+\_\+if}} (Input\+It1 begin1, End\+It1 end1, Input\+It2 begin2, End\+It2 end2, T def, Binary\+Transform op, Binary\+Predicate ch) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It1 $>$\+::value and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It2 $>$\+::value, decltype(op($\ast$begin1, $\ast$begin2))$>$
\item 
{\footnotesize template$<$typename Input\+It , typename End\+It , typename T , typename Unary\+Transform $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_aedb8bdb7d08d66f5896e94ea33e93ebb}{first\+\_\+result\+\_\+opt}} (Input\+It begin, End\+It end, T def, Unary\+Transform op) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It $>$\+::value, std\+::decay\+\_\+t$<$ decltype(op($\ast$begin))$>$ $>$
\item 
{\footnotesize template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename T , typename Binary\+Transform $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ae59131730a066402fc31c3ace96fcc59}{first\+\_\+result\+\_\+opt}} (Input\+It1 begin1, End\+It1 end1, Input\+It2 begin2, T def, Binary\+Transform op) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It1 $>$\+::value and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It2 $>$\+::value, std\+::decay\+\_\+t$<$ decltype(op($\ast$begin1, $\ast$begin2))$>$ $>$
\item 
{\footnotesize template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename End\+It2 , typename T , typename Binary\+Transform $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a726214edec4457179f1a8261c9987a28}{first\+\_\+result\+\_\+opt}} (Input\+It1 begin1, End\+It1 end1, Input\+It2 begin2, End\+It2 end2, T def, Binary\+Transform op) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It1 $>$\+::value and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It2 $>$\+::value, std\+::decay\+\_\+t$<$ decltype(op($\ast$begin1, $\ast$begin2))$>$ $>$
\item 
{\footnotesize template$<$typename Input\+It , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ab437bea5ac232c0a681f8bb1d3754170}{all\+\_\+of}} (Input\+It begin, Input\+It end, Unary\+Predicate pred) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It $>$\+::value, bool $>$
\begin{DoxyCompactList}\small\item\em Determine if pred is true for every element of the range. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Range , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a3a1a48159ee73f9c98ad2665c3fd4079}{all\+\_\+of}} (Range \&\&rng, Unary\+Predicate pred) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}}$<$ Range $>$\+::value, bool $>$
\begin{DoxyCompactList}\small\item\em Determine if pred is true for every element of the range. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_aad79cff7fa01a4ed3d85b83b419cab08}{none\+\_\+of}} (Input\+It begin, Input\+It end, Unary\+Predicate pred) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It $>$\+::value, bool $>$
\begin{DoxyCompactList}\small\item\em Determine if pred is false for every element of the range. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Range , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ae58938274f29202b1a8c9b07f98ed912}{none\+\_\+of}} (Range \&\&rng, Unary\+Predicate pred) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}}$<$ Range $>$\+::value, bool $>$
\begin{DoxyCompactList}\small\item\em Determine if pred is true for every element of the range. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a2696df0185d20ec1445d22247e259ab1}{any\+\_\+of}} (Input\+It begin, Input\+It end, Unary\+Predicate pred) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It $>$\+::value, bool $>$
\begin{DoxyCompactList}\small\item\em Determine if pred is true for at least one element of the range. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Range , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a16a5842f4404c27f10371190be51bf49}{any\+\_\+of}} (Range \&\&rng, Unary\+Predicate pred) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}}$<$ Range $>$\+::value, bool $>$
\begin{DoxyCompactList}\small\item\em Determine if pred is true for every element of the range. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It , typename Value $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a049d0a38a218a1d7cf786ea8f01f2073}{contains}} (Input\+It begin, Input\+It end, const Value \&val) noexcept(noexcept($\ast$begin==val)) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It $>$\+::value, bool $>$
\begin{DoxyCompactList}\small\item\em Determine if a range contains a value. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Set , typename Value $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a0188bc62243d7008096fd565fb6b2e83}{contains}} (const Set \&set, const Value \&val) noexcept(noexcept($\ast$std\+::declval$<$ \mbox{\hyperlink{namespacekblib_a50228da6d1f395258a03db48257305d0}{iterator\+\_\+type\+\_\+for\+\_\+t}}$<$ const Set $>$ \& $>$()==val)) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}}$<$ Set $>$\+::value, bool $>$
\begin{DoxyCompactList}\small\item\em Determine if a range contains a value. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It1 , typename Input\+It2 $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a906cc73872a93e33b3ce8a3a66319012}{contains\+\_\+any}} (Input\+It1 begin, Input\+It1 end, Input\+It2 n\+\_\+begin, Input\+It2 n\+\_\+end) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It1 $>$\+::value and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It2 $>$\+::value, bool $>$
\item 
{\footnotesize template$<$typename Input\+It , typename Range2 $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a6de3ee39cfc6317455f5035a014d024c}{contains\+\_\+any}} (Input\+It begin, Input\+It end, Range2 \&\&needle) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$ Input\+It $>$\+::value and \mbox{\hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}}$<$ Range2 $>$\+::value, bool $>$
\item 
{\footnotesize template$<$typename Range1 , typename Range2 $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ab4a3305951b7977f071de23396e980bc}{contains\+\_\+any}} (Range1 \&\&haystack, Range2 \&\&needle) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}}$<$ Range1 $>$\+::value and \mbox{\hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}}$<$ Range2 $>$\+::value, bool $>$
\item 
{\footnotesize template$<$typename Forward\+It , typename End\+It , typename Compare  = std\+::less$<$$>$$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a85f026b89c516de43393ab0259c1c834}{max\+\_\+element}} (Forward\+It first, End\+It last, Compare comp=\{\}) -\/$>$ Forward\+It
\item 
{\footnotesize template$<$typename Sequence\+Container , typename Comp  = std\+::less$<$$>$, typename It , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ is\+\_\+linear\+\_\+container\+\_\+v$<$ Sequence\+Container $>$, int $>$  = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a774bfbeef759d1bbedb5908f1348591b}{get\+\_\+max\+\_\+n\+\_\+old}} (It first, It last, std\+::size\+\_\+t count, Comp cmp=\{\}) -\/$>$ Sequence\+Container
\begin{DoxyCompactList}\small\item\em Returns a container of the greatest count elements according to cmp of the range \mbox{[}first, last), in arbitrary order. This overload works for linear containers. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Sequence\+Container , typename Comp  = std\+::less$<$$>$, typename It , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ is\+\_\+linear\+\_\+container\+\_\+v$<$ Sequence\+Container $>$, int $>$  = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a73a566130ecb9a7b37b0db0952a53404}{get\+\_\+max\+\_\+n}} (It first, It last, std\+::size\+\_\+t count, Comp cmp=\{\}) -\/$>$ Sequence\+Container
\begin{DoxyCompactList}\small\item\em Returns a container of the greatest count elements according to cmp of the range \mbox{[}first, last), in descending order. This overload works for linear containers. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Comp  = std\+::less$<$$>$, typename Input\+It , typename Output\+It , typename Elem  = typename std\+::iterator\+\_\+traits$<$\+Input\+It$>$\+::value\+\_\+type$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a07a1e3d300beb263772b5fd079e5d029}{get\+\_\+max\+\_\+n}} (Input\+It first, Input\+It last, Output\+It d\+\_\+begin, std\+::size\+\_\+t count, Comp cmp=\{\}) -\/$>$ \mbox{\hyperlink{namespacekblib_acdb4473ef9196a18a0e37e05171729f0}{return\+\_\+assert\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__output__iterator__for}{is\+\_\+output\+\_\+iterator\+\_\+for}}$<$ Output\+It, Elem $>$\+::value, Output\+It $>$
\begin{DoxyCompactList}\small\item\em Copies the count greatest elements according to cmp of the range \mbox{[}first, last) to the range beginning at d\+\_\+begin. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Forward\+It , typename End\+It , typename Forward\+It2 , typename Binary\+Function $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a5a3199d9020a07ae387f60a6ef61393b}{for\+\_\+each}} (Forward\+It first, End\+It last, Forward\+It2 second, Binary\+Function f) -\/$>$ Binary\+Function
\begin{DoxyCompactList}\small\item\em Applies a binary operation to each pair of corresponding elements in two input ranges. It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Forward\+It , typename Forward\+It2 , typename Size , typename Binary\+Function $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a645d4e1338c54d720c7cb1f8f90a0e59}{for\+\_\+each\+\_\+n}} (Forward\+It first, Size n, Forward\+It2 second, Binary\+Function f) -\/$>$ std\+::pair$<$ Forward\+It, Forward\+It2 $>$
\begin{DoxyCompactList}\small\item\em Applies a binary operation to each pair of corresponding elements in two input ranges. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It , typename End\+It , typename Output\+It $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ac912dd210d34963da9bd40a1a6296308}{copy}} (Input\+It first, End\+It last, Output\+It out) -\/$>$ Output\+It
\begin{DoxyCompactList}\small\item\em Copies all elements of \mbox{[}{\ttfamily first}, {\ttfamily last}) to out. It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It , typename End\+It , typename Output\+It , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a5e6f2b40f2b5e649d70df34e5bcc03fe}{copy\+\_\+if}} (Input\+It first, End\+It last, Output\+It out, Unary\+Predicate pred) -\/$>$ Output\+It
\begin{DoxyCompactList}\small\item\em Copies those elements of \mbox{[}{\ttfamily first}, {\ttfamily last}) which satisfy pred to out. It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It , typename Size , typename Output\+It $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a428621582602281bc8643b3e6830e2d4}{copy\+\_\+n}} (Input\+It first, Size count, Output\+It out) -\/$>$ Output\+It
\begin{DoxyCompactList}\small\item\em Copies all elements of \mbox{[}{\ttfamily first}, {\ttfamily std\+::advance(first, n)}) to out. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It , typename Size , typename Output\+It , typename Unary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ab3f36a456830c5c88673a6df70828978}{copy\+\_\+n\+\_\+if}} (Input\+It first, Size count, Output\+It out, Unary\+Predicate pred) -\/$>$ Output\+It
\begin{DoxyCompactList}\small\item\em Copies those elements of \mbox{[}{\ttfamily first}, {\ttfamily std\+::advance(first, n)}) which satisfy pred to out. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It , typename End\+It , typename Output\+It , typename Unary\+Predicate , typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a3a46a1cf64ac97bdc6b5d7fe0571f38f}{replace\+\_\+copy\+\_\+if}} (Input\+It first, End\+It last, Output\+It out, Unary\+Predicate pred, const T \&new\+\_\+value) -\/$>$ Output\+It
\begin{DoxyCompactList}\small\item\em Copies an input range, but every element for which pred is true is replaced by new\+\_\+value. It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It , typename Size , typename Output\+It , typename Unary\+Predicate , typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_aaabe9f5328918c0b6e44df29782e7ae1}{replace\+\_\+copy\+\_\+n\+\_\+if}} (Input\+It first, Size count, Output\+It out, Unary\+Predicate pred, const T \&new\+\_\+value) -\/$>$ Output\+It
\begin{DoxyCompactList}\small\item\em Copies an input range, but every element for which pred is true is replaced by new\+\_\+value. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Forward\+It1 , typename Forward\+It2 , typename Forward\+It3 , typename Output\+It , typename Binary\+Predicate  = std\+::equal\+\_\+to$<$$>$$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ac237e40dd9be6a60c18b9b520b51e111}{search\+\_\+replace\+\_\+copy}} (Forward\+It1 h\+\_\+begin, Forward\+It1 h\+\_\+end, Forward\+It2 n\+\_\+begin, Forward\+It2 n\+\_\+end, Forward\+It3 r\+\_\+begin, Forward\+It3 r\+\_\+end, Output\+It d\+\_\+begin, Binary\+Predicate Compare=\{\}) -\/$>$ Output\+It
\item 
{\footnotesize template$<$typename Haystack , typename Needle , typename Replacement , typename Output\+It , typename Binary\+Predicate  = std\+::equal\+\_\+to$<$$>$$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_abffc089ff2fee6d19613dc39cd47cfb5}{search\+\_\+replace\+\_\+copy}} (Haystack \&\&haystack, Needle \&\&needle, Replacement \&\&replacement, Output\+It d\+\_\+begin, Binary\+Predicate compare=\{\})
\item 
{\footnotesize template$<$class Forward\+It $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_abe51624618b4a7c9f20e295b8c89bf47}{rotate}} (Forward\+It first, Forward\+It n\+\_\+first, Forward\+It last) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a4aadfdece3872e99551aa812ac3bac27}{swap}}($\ast$first, $\ast$first))) -\/$>$ Forward\+It
\begin{DoxyCompactList}\small\item\em Rotates the input range. This is just a constexpr-\/in-\/\+C++14 version of std\+::rotate. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Output\+It , typename End\+It , typename Generator $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a33f20e37682017226d1d7a7128915ea5}{generate}} (Output\+It first, End\+It last, Generator g) noexcept(noexcept($\ast$++first=g())) -\/$>$ Output\+It
\begin{DoxyCompactList}\small\item\em Like std\+::generate except that it returns the output iterator at the end. It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Output\+It , typename Size , typename Generator $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a44de39f5ab34ae1bf5b037eb11155caa}{generate\+\_\+n}} (Output\+It first, Size count, Generator g) noexcept(noexcept($\ast$first++=g())) -\/$>$ Output\+It
\begin{DoxyCompactList}\small\item\em Like std\+::generate\+\_\+n except that it is constexpr. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Forward\+It , typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a40d0e463984f5ab01f6db106dbad9fb0}{iota}} (Forward\+It first, Forward\+It last, T value) noexcept(noexcept($\ast$first++=value) and noexcept(++value)) -\/$>$ void
\item 
{\footnotesize template$<$typename Forward\+It , typename T , typename Unary\+Operation $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_aae9af72a825beb17613b2754bbaca9cc}{iota}} (Forward\+It first, Forward\+It last, T value, Unary\+Operation unary\+\_\+op) noexcept(noexcept($\ast$first++=value) and noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(unary\+\_\+op, std\+::move(value)))) -\/$>$ void
\item 
{\footnotesize template$<$typename Input\+It , typename End\+It , typename... Params$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a00c98fe410dfc13b00832ecf0293eac9}{call\+\_\+each}} (Input\+It first, End\+It last, Params \&\&... params) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}($\ast$first++, std\+::forward$<$ Params $>$(params)...))) -\/$>$ Input\+It
\item 
{\footnotesize template$<$typename Input\+It , typename End\+It , typename Output\+It , typename Unary\+Operation $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{transform}} (Input\+It first, End\+It last, Output\+It d\+\_\+first, Unary\+Operation unary\+\_\+op) -\/$>$ Output\+It
\begin{DoxyCompactList}\small\item\em transform applies the given function to a range and stores the result in another range, beginning at d\+\_\+first. The unary operation unary\+\_\+op is applied to the range defined by \mbox{[}first1, last1). It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It , typename End\+It , typename Input\+It2 , typename Output\+It , typename Binary\+Operation $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_aec3f0154a30d5459c15d1984f137644c}{transform}} (Input\+It first, End\+It last, Input\+It first2, Output\+It d\+\_\+first, Binary\+Operation binary\+\_\+op) -\/$>$ Output\+It
\begin{DoxyCompactList}\small\item\em transform applies the given function to a range and stores the result in another range, beginning at d\+\_\+first. The unary operation unary\+\_\+op is applied to the range defined by \mbox{[}first1, last1). It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+It , typename End\+It , typename Output\+It , typename Unary\+Predicate , typename Unary\+Operation $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a09ef1e721a1b15383c199c67339aaa10}{transform\+\_\+if}} (Input\+It first, End\+It last, Output\+It d\+\_\+first, Unary\+Predicate pred, Unary\+Operation unary\+\_\+op) -\/$>$ Output\+It
\begin{DoxyCompactList}\small\item\em transform applies the given function to a range and stores the result in another range, beginning at d\+\_\+first. The unary operation unary\+\_\+op is applied to the range defined by \mbox{[}first1, last1). It also allows for a sentinel end iterator. \end{DoxyCompactList}\item 
constexpr auto \mbox{\hyperlink{namespacekblib_a240472ec40bbae42961817f5985de54e}{memswap}} (unsigned char $\ast$A, unsigned char $\ast$B, std\+::size\+\_\+t \mbox{\hyperlink{namespacekblib_a0e74aee94f446396c8f8b7bf34b16acb}{size}}) noexcept -\/$>$ void
\begin{DoxyCompactList}\small\item\em Swaps memory ranges. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{namespacekblib_a325b7ea3dc60a54c9b341e7851f94bcb}{memswap}} (void $\ast$A, void $\ast$B, std\+::size\+\_\+t \mbox{\hyperlink{namespacekblib_a0e74aee94f446396c8f8b7bf34b16acb}{size}}) noexcept -\/$>$ void
\begin{DoxyCompactList}\small\item\em Swaps memory ranges. \end{DoxyCompactList}\item 
{\footnotesize template$<$std\+::size\+\_\+t I, typename... Types$>$ }\\auto \mbox{\hyperlink{namespacekblib_a951945f1ed7d42562a7e6fa8cf8f0405}{get}} (\mbox{\hyperlink{structkblib_1_1punner}{punner}}$<$ Types... $>$ \&p) noexcept -\/$>$ decltype(auto)
\item 
{\footnotesize template$<$std\+::size\+\_\+t I, typename... Types$>$ }\\auto \mbox{\hyperlink{namespacekblib_ac224d3445c7dba280beacefc67b7641b}{get}} (const \mbox{\hyperlink{structkblib_1_1punner}{punner}}$<$ Types... $>$ \&p) noexcept -\/$>$ decltype(auto)
\item 
{\footnotesize template$<$std\+::size\+\_\+t I, typename... Types$>$ }\\auto \mbox{\hyperlink{namespacekblib_aeb5bc5882b32685b477723ff9b5d4642}{get}} (\mbox{\hyperlink{structkblib_1_1punner}{punner}}$<$ Types... $>$ \&\&p) noexcept -\/$>$ decltype(auto)
\item 
{\footnotesize template$<$std\+::size\+\_\+t I, typename... Types$>$ }\\auto \mbox{\hyperlink{namespacekblib_af291a0ebb9263d6588279eb0e379abc1}{get}} (const \mbox{\hyperlink{structkblib_1_1punner}{punner}}$<$ Types... $>$ \&\&p) noexcept -\/$>$ decltype(auto)
\item 
{\footnotesize template$<$typename Container , typename Input\+It , typename Unary\+Function $>$ }\\auto \mbox{\hyperlink{namespacekblib_a392972471eeedefaafc0f5154c3a4a32}{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}{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 , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Array $>$, int $>$  = 0$>$ }\\auto \mbox{\hyperlink{namespacekblib_a33d7779af12cb836b7a07e762c4251ee}{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 , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Array $>$, int $>$  = 0$>$ }\\auto \mbox{\hyperlink{namespacekblib_add6c009a3c106ba1528c168dee122c77}{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}{build}} (Functor f, size\+\_\+t \mbox{\hyperlink{namespacekblib_a0e74aee94f446396c8f8b7bf34b16acb}{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 , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Array $>$, int $>$  = 0$>$ }\\auto \mbox{\hyperlink{namespacekblib_af103b44450c172da5a091d738b7b1e53}{build}} (Functor f, size\+\_\+t \mbox{\hyperlink{namespacekblib_a0e74aee94f446396c8f8b7bf34b16acb}{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}{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}{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}{build\+\_\+dy}} (Functor f, size\+\_\+t \mbox{\hyperlink{namespacekblib_a0e74aee94f446396c8f8b7bf34b16acb}{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 , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Container $>$, int $>$  = 0$>$ }\\auto \mbox{\hyperlink{namespacekblib_ae538bfb0085fabd1601825a87bb792b3}{build\+\_\+dy}} (Range \&\&r, Unary\+Function f) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container , typename... Args$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a2024ab838aaf4e23deb9bbc98390e887}{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}{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 , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Container $>$, int $>$  = 0$>$ }\\auto \mbox{\hyperlink{namespacekblib_ab5819760aeb8cb631c6b11d23c1f7d87}{build\+\_\+copy}} (Range \&\&r) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container , typename Range $>$ }\\auto \mbox{\hyperlink{namespacekblib_ac1661b5bdfb17ff4ba473af6d88c61aa}{build\+\_\+copy}} (Range \&\&r, typename Container\+::allocator\+\_\+type allocator=typename Container\+::allocator\+\_\+type\{\}) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container , typename Input\+It , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Container $>$, int $>$  = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_afdf68a6165cea2d31b0e940fd4de7d6a}{build\+\_\+copy}} (Input\+It first, Input\+It last) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container , typename Range , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Container $>$, int $>$  = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ac64ffa3114496642a4728082bac29a4e}{build\+\_\+copy}} (Range \&\&r) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container , typename Input\+It , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Container $>$, int $>$  = 0$>$ }\\auto \mbox{\hyperlink{namespacekblib_a22c37be2f65bb8810e0add151d6def8b}{build\+\_\+copy}} (Input\+It first, Input\+It last, std\+::size\+\_\+t \mbox{\hyperlink{namespacekblib_a0e74aee94f446396c8f8b7bf34b16acb}{size}}) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container , typename Range , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Container $>$, int $>$  = 0$>$ }\\auto \mbox{\hyperlink{namespacekblib_adc410174377c7de2738ce5036fe31b99}{build\+\_\+copy}} (Range \&\&r, std\+::size\+\_\+t \mbox{\hyperlink{namespacekblib_a0e74aee94f446396c8f8b7bf34b16acb}{size}}) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container , typename Input\+It , typename Predicate $>$ }\\auto \mbox{\hyperlink{namespacekblib_a8b4bd970deaa3f4685bb38e8ee2a9316}{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}{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}{build\+\_\+copy\+\_\+n\+\_\+if}} (Input\+It first, Size count, Predicate f, typename Container\+::allocator\+\_\+type allocator=typename Container\+::allocator\+\_\+type\{\}) -\/$>$ Container
\item 
{\footnotesize template$<$typename C $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ad505bc6a8318d39ac08f85bf9a8cddbb}{pop}} (C \&s) -\/$>$ typename C\+::value\+\_\+type
\item 
{\footnotesize template$<$class C , typename K , typename V $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a255d018d13394a47c014b2929a35a3b5}{get\+\_\+or}} (const C \&m, const K \&key, const V \&defval) -\/$>$ typename C\+::mapped\+\_\+type
\item 
{\footnotesize template$<$typename Map , typename Key $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ac2b7bd4d50cea42484b9824a8140602f}{try\+\_\+get}} (Map \&\mbox{\hyperlink{namespacekblib_a1490492d82c28f195f0f44a9d88fb2cc}{map}}, Key \&\&key) -\/$>$ \mbox{\hyperlink{namespacekblib_af973fdd9c2dddf6db3744ae83902fc72}{copy\+\_\+const\+\_\+t}}$<$ Map, typename Map\+::mapped\+\_\+type $>$ $\ast$
\item 
{\footnotesize template$<$typename M , typename K $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ae0ceac8ca285d73c019ff7822c3a89d3}{get\+\_\+check}} (M \&\&m, const K \&key) noexcept(noexcept(m.\+find(key) !=m.\+end())) -\/$>$ \mbox{\hyperlink{structkblib_1_1exists__t}{exists\+\_\+t}}$<$ decltype(m.\+find(key))$>$
\item 
{\footnotesize template$<$typename V $>$ }\\auto \mbox{\hyperlink{namespacekblib_a0796644f9c5f55c99e916160cc085319}{force\+\_\+shrink\+\_\+to\+\_\+fit}} (V \&vec) -\/$>$ void
\begin{DoxyCompactList}\small\item\em std\+::vector\+::shrink\+\_\+to\+\_\+fit is non-\/binding, which means that there is no guaranteed way to shrink a vector via its API. This function is a roundabout way of doing that without relying on the sanity of the implementation (except that it assumes that a vector won\textquotesingle{}t significantly over-\/allocate on sized construction). \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , typename Range $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a639f719064a3ea44cd586faac94ac012}{construct\+\_\+from\+\_\+range}} (Range \&\&r) -\/$>$ Container
\begin{DoxyCompactList}\small\item\em Allows for constructing a container of a specified type from a range object. Copy elision means that this does not result in any extra copies. \end{DoxyCompactList}\item 
{\footnotesize template$<$int base, typename Int $>$ }\\auto \mbox{\hyperlink{namespacekblib_a9d7e23caee89855a71fb84c7f245f977}{to\+\_\+string}} (Int num) -\/$>$ std\+::string
\item 
{\footnotesize template$<$typename Int $>$ }\\auto \mbox{\hyperlink{namespacekblib_ad4d84a46d50ba8ad780b5d12ec029225}{to\+\_\+string}} (Int num, int base) -\/$>$ std\+::string
\item 
{\footnotesize template$<$typename Result $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a269228ff0b3ecfd65167e5b4420a85b5}{parse\+\_\+integer}} (const char $\ast$begin, const char $\ast$end, int base=0) -\/$>$ Result
\item 
{\footnotesize template$<$typename Result , std\+::size\+\_\+t N$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a285ebb5d09f6f36d091e1c25293969d9}{parse\+\_\+integer}} (const char(\&in)\mbox{[}N\mbox{]}, int base=0) -\/$>$ Result
\item 
{\footnotesize template$<$typename Result $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a85f95750656f07f1a99315e67cdb359e}{parse\+\_\+integer}} (const std\+::string \&in, int base=0) -\/$>$ Result
\item 
{\footnotesize template$<$typename Result $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a58a6e469a0449b408a7fbaf12bc49551}{parse\+\_\+integer}} (std\+::string\+\_\+view in, int base=0) -\/$>$ Result
\item 
{\footnotesize template$<$char... Cs$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_1_1literals_a89800ca5a1a2c396a3905227cb2919ad}{operator\char`\"{}\char`\"{}\+\_\+c}} ()
\item 
{\footnotesize template$<$char... Cs$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_1_1literals_adfec289c33286ad36edb6fe60932d1bb}{operator\char`\"{}\char`\"{}\+\_\+cu}} ()
\item 
{\footnotesize template$<$typename E , typename  = typename std\+::enable\+\_\+if$<$std\+::is\+\_\+enum$<$\+E$>$\+::value$>$\+::type$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_adceb810a61acaa78f10a700d1618aad7}{etoi}} (E \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}) -\/$>$ auto
\item 
{\footnotesize template$<$int max\+Buf\+Len = 4096, typename clock , typename duration $>$ }\\auto \mbox{\hyperlink{namespacekblib_a20e83a66411498f8637634a99ceef8f7}{time\+\_\+to\+\_\+str}} (std\+::chrono\+::time\+\_\+point$<$ clock, duration $>$ \&tp, const std\+::string \&fmt=\char`\"{}\%F \%T\char`\"{}) -\/$>$ std\+::string
\item 
{\footnotesize template$<$typename Rep , typename Ratio , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1detail__units_1_1is__si__ratio}{detail\+\_\+units\+::is\+\_\+si\+\_\+ratio}}$<$ typename Ratio\+::type $>$\+::value $>$ $\ast$  = 0$>$ }\\auto \mbox{\hyperlink{namespacekblib_af9a5bf09da3c4820ffd701def6a6f6da}{duration\+\_\+to\+\_\+str}} (std\+::chrono\+::duration$<$ Rep, Ratio $>$ \&d) -\/$>$ std\+::string
\item 
{\footnotesize template$<$typename Rep $>$ }\\auto \mbox{\hyperlink{namespacekblib_a9b4feeb3f624bef85e84024c3ffddb64}{duration\+\_\+to\+\_\+str}} (std\+::chrono\+::duration$<$ Rep, std\+::ratio$<$ 60 $>$ $>$ d) -\/$>$ std\+::string
\item 
{\footnotesize template$<$typename Rep $>$ }\\auto \mbox{\hyperlink{namespacekblib_adab181ff9f8850e2e5b6790a78d62cfc}{duration\+\_\+to\+\_\+str}} (std\+::chrono\+::duration$<$ Rep, std\+::ratio$<$ 3600 $>$ $>$ d) -\/$>$ std\+::string
\item 
{\footnotesize template$<$typename string $>$ }\\auto \mbox{\hyperlink{namespacekblib_a8c75f5ab3c250a21cb71377f34304575}{url\+\_\+encode}} (const string \&value) -\/$>$ std\+::string
\item 
{\footnotesize template$<$typename string $>$ }\\auto \mbox{\hyperlink{namespacekblib_a39eea8a137cf73e71ddcba1a074b5ca1}{html\+\_\+encode}} (const string \&data) -\/$>$ std\+::string
\item 
auto \mbox{\hyperlink{namespacekblib_ac0e93ddcc6d5c76947773411b4b1c324}{escapify}} (char c) -\/$>$ std\+::string
\item 
{\footnotesize template$<$typename string $>$ }\\auto \mbox{\hyperlink{namespacekblib_adc6dd5988f5ae20b8c0538bd50bd3657}{escapify}} (const string \&value) -\/$>$ std\+::string
\item 
{\footnotesize template$<$typename string $>$ }\\auto \mbox{\hyperlink{namespacekblib_afb501736f34154b5b1864cdace039fba}{calculate\+\_\+translated\+\_\+index}} (string \&\&value, const char $\ast$p) -\/$>$ std\+::ptrdiff\+\_\+t
\item 
auto \mbox{\hyperlink{namespacekblib_adf7bda5746d41d56ad8030ec34042c49}{calculate\+\_\+translated\+\_\+index}} (const char $\ast$value, const char $\ast$p) -\/$>$ std\+::ptrdiff\+\_\+t
\item 
{\footnotesize template$<$typename string $>$ }\\auto \mbox{\hyperlink{namespacekblib_a63baa5a83839bafa605866cd558a66aa}{quoted}} (string \&\&in) -\/$>$ std\+::string
\item 
{\footnotesize template$<$typename T $>$ }\\auto \mbox{\hyperlink{namespacekblib_adcf60327cd3273416aee1f4e21c545a2}{from\+Str}} (const std\+::string \&val, const char $\ast$type=typeid(T).name()) -\/$>$ T
\item 
template$<$$>$ auto \mbox{\hyperlink{namespacekblib_a57f578123119b93875bef04cfe49f65e}{from\+Str}} (const std\+::string \&val, const char $\ast$) -\/$>$ std\+::string
\item 
template$<$$>$ auto \mbox{\hyperlink{namespacekblib_a7c6f875ac9139f22c86dd6dd4d9065b1}{from\+Str}} (const std\+::string \&val, const char $\ast$type) -\/$>$ bool
\item 
{\footnotesize template$<$typename T $>$ }\\auto \mbox{\hyperlink{namespacekblib_a8a395da2f21ab1bf9f7753dafa31024b}{from\+Str}} (std\+::string \&\&val, const char $\ast$type=typeid(T).name()) -\/$>$ T
\item 
template$<$$>$ auto \mbox{\hyperlink{namespacekblib_a853a2017ce132aff49da11dc89c0d4f8}{from\+Str}} (std\+::string \&\&val, const char $\ast$) -\/$>$ std\+::string
\item 
template$<$$>$ auto \mbox{\hyperlink{namespacekblib_aa4044dd6c31f3ad46403c7c160f117f7}{from\+Str}} (std\+::string \&\&val, const char $\ast$type) -\/$>$ bool
\item 
template$<$$>$ auto \mbox{\hyperlink{namespacekblib_a0edc4804a0cef00e0ee38e0545a5c185}{from\+Str}} (const std\+::string \&val, const char $\ast$) -\/$>$ std\+::string\+\_\+view
\item 
template$<$$>$ auto \mbox{\hyperlink{namespacekblib_aadea0d5dfda041cebdee25a03cb326b7}{from\+Str}} (std\+::string \&\&, const char $\ast$) -\/$>$ std\+::string\+\_\+view=delete
\item 
{\footnotesize template$<$typename T $>$ }\\auto \mbox{\hyperlink{namespacekblib_aa7bf83ca8ddfe3ca539cb91272916b49}{from\+Str}} (std\+::string\+\_\+view val, const char $\ast$type=typeid(T).name()) -\/$>$ T
\item 
template$<$$>$ auto \mbox{\hyperlink{namespacekblib_a0d43c9471efd41988e7fe3803ebe9920}{from\+Str}} (std\+::string\+\_\+view val, const char $\ast$) -\/$>$ std\+::string\+\_\+view
\item 
template$<$$>$ auto \mbox{\hyperlink{namespacekblib_accb73432c51f1abcb19600cbc74c76b3}{from\+Str}} (std\+::string\+\_\+view val, const char $\ast$) -\/$>$ std\+::string
\item 
template$<$$>$ auto \mbox{\hyperlink{namespacekblib_af325be078a70629608c96f77cde6f957}{from\+Str}} (std\+::string\+\_\+view val, const char $\ast$type) -\/$>$ bool
\item 
{\footnotesize template$<$typename To , std\+::size\+\_\+t N$>$ }\\auto \mbox{\hyperlink{namespacekblib_aa4f711c2235a07748d06db315f0390fd}{from\+Str}} (const char(\&val)\mbox{[}N\mbox{]}, const char $\ast$type=typeid(To).name()) -\/$>$ To
\item 
{\footnotesize template$<$typename To , typename \+\_\+ $>$ }\\auto \mbox{\hyperlink{namespacekblib_accd006c8702a96a58797a630927f1e84}{from\+Str}} (const char $\ast$val, const char $\ast$type=typeid(To).name(), \+\_\+=0) -\/$>$ To
\item 
{\footnotesize template$<$typename T $>$ }\\auto \mbox{\hyperlink{namespacekblib_a600e9511e6339ab63326a78ece7df363}{to\+Str}} (T val) -\/$>$ std\+::string
\item 
auto \mbox{\hyperlink{namespacekblib_a68e0483e61eda02342b8104c3832e60e}{to\+Str}} (std\+::string val) -\/$>$ std\+::string
\item 
{\footnotesize template$<$typename To , typename From $>$ }\\auto \mbox{\hyperlink{namespacekblib_ae68ff8cae049c12ffe3f568617e8d6c3}{lexical\+\_\+cast}} (const From \&val, const char $\ast$type=typeid(To).name()) -\/$>$ To
\item 
{\footnotesize template$<$typename Range $>$ }\\auto \mbox{\hyperlink{namespacekblib_a679258c0b7423a4175f9ba848da99d96}{cry\+\_\+enumerate}} (Range \&\&\mbox{\hyperlink{namespacekblib_a72690688922a2d4ae9a3e46ff0c1a9a9}{range}}) -\/$>$ auto
\item 
{\footnotesize template$<$typename Range $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_af60faf67d8fc0ac030f8a2cb27514eed}{enumerate}} (Range \&\&r) -\/$>$ \mbox{\hyperlink{structkblib_1_1enumerate__t}{enumerate\+\_\+t}}$<$ Range \&\& $>$
\begin{DoxyCompactList}\small\item\em Allow access to indexes while using range-\/based for loops. Safe to use with rvalues. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename It , typename EIt $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a30574c8277c857984a6b967918ace252}{enumerate}} (It begin, EIt end) -\/$>$ \mbox{\hyperlink{structkblib_1_1enumerate__t}{enumerate\+\_\+t}}$<$ It, EIt $>$
\begin{DoxyCompactList}\small\item\em Allow access to indexes while using range-\/based for loops. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename F , typename... Args$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{invoke}} (F \&\&f, Args \&\&... args) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_1_1detail_a9fcbe60cc8d89d741dc327bee247fbcb}{detail\+::do\+\_\+invoke}}(std\+::forward$<$ F $>$(f), std\+::forward$<$ Args $>$(args)...))) -\/$>$ decltype(auto)
\item 
{\footnotesize template$<$typename F , typename Arg $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a3873199be1651ec4e0fda92171b2b82c}{apply}} (F \&\&f, Arg \&\&arg) noexcept(noexcept(\mbox{\hyperlink{structkblib_1_1detail_1_1apply__impl}{detail\+::apply\+\_\+impl}}$<$ F, Arg $>$\+::do\+\_\+apply(std\+::forward$<$ F $>$(f), std\+::forward$<$ Arg $>$(arg), std\+::index\+\_\+sequence$<$ std\+::tuple\+\_\+size$<$ Arg $>$\+::value $>$\{\}))) -\/$>$ decltype(auto)
\item 
{\footnotesize template$<$typename T $>$ }\\auto \mbox{\hyperlink{namespacekblib_ae8b1b4dad48864760dd5c1ba368c06c9}{to\+\_\+unique}} (gsl\+::owner$<$ T $\ast$ $>$ p) -\/$>$ std\+::unique\+\_\+ptr$<$ T $>$
\item 
{\footnotesize template$<$typename T , typename D $>$ }\\auto \mbox{\hyperlink{namespacekblib_acf70692a40d94aa8df04ea37d05c7a64}{to\+\_\+unique}} (gsl\+::owner$<$ T $\ast$ $>$ p, D \&\&d) -\/$>$ std\+::unique\+\_\+ptr$<$ T, D $>$
\item 
{\footnotesize template$<$typename I $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_af9e250fffa2922e623baa08aa8994f54}{to\+\_\+unsigned}} (I x) -\/$>$ std\+::make\+\_\+unsigned\+\_\+t$<$ I $>$
\begin{DoxyCompactList}\small\item\em Cast integral argument to corresponding unsigned type. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename I $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a1909a64960663825ccc4eb98e4637df2}{to\+\_\+signed}} (I x) -\/$>$ std\+::make\+\_\+signed\+\_\+t$<$ I $>$
\begin{DoxyCompactList}\small\item\em Cast integral argument to corresponding signed type. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename A , typename F $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_accb66942cbfbca80c254045501c96cc9}{signed\+\_\+cast}} (F x) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+integral$<$ A $>$\+::value and std\+::is\+\_\+integral$<$ F $>$\+::value and std\+::is\+\_\+signed$<$ A $>$\+::value, std\+::make\+\_\+signed\+\_\+t$<$ F $>$ $>$
\begin{DoxyCompactList}\small\item\em Cast argument to equivalently-\/sized type with the same signednessas the template parameter. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T , typename U  = T$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a0c3f29dc7d19ffe01f977ce294ee537a}{exchange}} (T \&obj, U \&\&new\+\_\+value) -\/$>$ T
\item 
{\footnotesize template$<$typename N $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ae842572db70fc0a71d6ea2c2c33f3eff}{signed\+\_\+promote}} (N x) noexcept -\/$>$ \mbox{\hyperlink{namespacekblib_ace81df18accc355bebf9245f09107b51}{safe\+\_\+signed\+\_\+t}}$<$ N $>$
\item 
{\footnotesize template$<$class Input\+It1 , class Input\+It2 $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_afbec3807c1be9d0aea88c620d673823c}{equal}} (Input\+It1 first1, Input\+It1 last1, Input\+It2 first2) -\/$>$ bool
\item 
{\footnotesize template$<$typename Input\+It1 , typename Input\+It2 , typename Binary\+Predicate , typename \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{kblib\+::enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+same$<$ Input\+It2, Binary\+Predicate $>$\+::value, int $>$  = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a4b33292eab2082159622b9c062b665c0}{equal}} (Input\+It1 first1, Input\+It1 last1, Input\+It2 first2, Binary\+Predicate p) -\/$>$ bool
\item 
{\footnotesize template$<$class Random\+It1 , class Random\+It2 , typename \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{kblib\+::enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+base\+\_\+of$<$ std\+::random\+\_\+access\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ Random\+It1 $>$\+::iterator\+\_\+category $>$\+::value and std\+::is\+\_\+base\+\_\+of$<$ std\+::random\+\_\+access\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ Random\+It2 $>$\+::iterator\+\_\+category $>$\+::value, int $>$  = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_aa5cefb6480de50ffafc875fedc55538a}{equal}} (Random\+It1 first1, Random\+It1 last1, Random\+It2 first2, Random\+It2 last2) -\/$>$ bool
\item 
{\footnotesize template$<$class Random\+It1 , class Random\+It2 , typename Binary\+Predicate , typename \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{kblib\+::enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+base\+\_\+of$<$ std\+::random\+\_\+access\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ Random\+It1 $>$\+::iterator\+\_\+category $>$\+::value and std\+::is\+\_\+base\+\_\+of$<$ std\+::random\+\_\+access\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ Random\+It2 $>$\+::iterator\+\_\+category $>$\+::value, int $>$  = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a391794b2905afd47e4ba541643472d33}{equal}} (Random\+It1 first1, Random\+It1 last1, Random\+It2 first2, Random\+It2 last2, Binary\+Predicate p) -\/$>$ bool
\item 
{\footnotesize template$<$class Input\+It1 , class Input\+It2 , typename \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{kblib\+::enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+base\+\_\+of$<$ std\+::random\+\_\+access\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ Input\+It1 $>$\+::iterator\+\_\+category $>$\+::value or not std\+::is\+\_\+base\+\_\+of$<$ std\+::random\+\_\+access\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ Input\+It2 $>$\+::iterator\+\_\+category $>$\+::value, int $>$  = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a131eb5b6f49dfb59ab977a066d1869e7}{equal}} (Input\+It1 first1, Input\+It1 last1, Input\+It2 first2, Input\+It2 last2) -\/$>$ bool
\item 
{\footnotesize template$<$typename Input\+It1 , typename Input\+It2 , typename Binary\+Predicate , typename \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{kblib\+::enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+base\+\_\+of$<$ std\+::random\+\_\+access\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ Input\+It1 $>$\+::iterator\+\_\+category $>$\+::value or not std\+::is\+\_\+base\+\_\+of$<$ std\+::random\+\_\+access\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ Input\+It2 $>$\+::iterator\+\_\+category $>$\+::value, int $>$  = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_adbde434818524955250916aad1e9f2d5}{equal}} (Input\+It1 first1, Input\+It1 last1, Input\+It2 first2, Input\+It2 last2, Binary\+Predicate p) -\/$>$ bool
\item 
{\footnotesize template$<$typename C $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a0e74aee94f446396c8f8b7bf34b16acb}{size}} (const C \&c) -\/$>$ decltype(c.\+size())
\item 
{\footnotesize template$<$typename T , std\+::size\+\_\+t N$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a0b930fad0b5a938aea712565cec9037e}{size}} (const T(\&)\mbox{[}N\mbox{]}) noexcept -\/$>$ std\+::size\+\_\+t
\item 
{\footnotesize template$<$class Input\+It1 , class Input\+It2 $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_aec67bf14d264f3587e3b86645af62d2a}{lexicographical\+\_\+compare}} (Input\+It1 first1, Input\+It1 last1, Input\+It2 first2, Input\+It2 last2) -\/$>$ bool
\item 
{\footnotesize template$<$typename Number $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ab5e75c9314c76b12efd507259206a546}{count\+\_\+digits}} (Number val) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+floating\+\_\+point$<$ Number $>$\+::value, int $>$
\begin{DoxyCompactList}\small\item\em Calculates the number of decimal digits needed to represent a number, plus one for negative numbers. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Number $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a490acb8189530823cb6150afff35fc1c}{count\+\_\+digits}} (Number val, int base) -\/$>$ int
\begin{DoxyCompactList}\small\item\em Calculates the number of digits needed to represent a number in a given base, plus one for negative numbers. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Forward\+It $>$ }\\auto \mbox{\hyperlink{namespacekblib_a5a05c4dad317da381751c694a4b69c52}{max\+\_\+count\+\_\+digits}} (Forward\+It first, Forward\+It last) -\/$>$ int
\begin{DoxyCompactList}\small\item\em Returns the necessary number of digits to represent the largest value in an input range. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Forward\+It $>$ }\\auto \mbox{\hyperlink{namespacekblib_a79bdc41eaf5235864ea333ebe30e7c36}{max\+\_\+count\+\_\+digits}} (Forward\+It first, Forward\+It last, int base) -\/$>$ int
\begin{DoxyCompactList}\small\item\em Returns the necessary number of digits to represent the largest value in an input range. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Integral , typename CharT $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ac450342ec31e16201b67e3331a23761d}{to\+\_\+bytes\+\_\+le}} (Integral ival, CharT(\&dest)\mbox{[}sizeof(Integral)\mbox{]}) noexcept -\/$>$ void
\item 
{\footnotesize template$<$typename Integral , typename CharT $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_abc19a82cefecfafd20114ebb93b218ec}{to\+\_\+bytes\+\_\+be}} (Integral ival, CharT(\&dest)\mbox{[}sizeof(Integral)\mbox{]}) noexcept -\/$>$ void
\item 
{\footnotesize template$<$typename Integral , typename CharT $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a5ab8aca1c780d41f099cead14d4227c3}{to\+\_\+bytes}} (Integral val, CharT(\&dest)\mbox{[}sizeof(Integral)\mbox{]}) noexcept -\/$>$ void
\item 
{\footnotesize template$<$typename Hash\+Int , typename Span $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a74d22c0d4828fcf909655abd919bf003}{FNVa}} (Span \&\&s, Hash\+Int hval=\mbox{\hyperlink{structkblib_1_1fnv_1_1fnv__offset}{fnv\+::fnv\+\_\+offset}}$<$ Hash\+Int $>$\+::value) noexcept -\/$>$ Hash\+Int
\begin{DoxyCompactList}\small\item\em A templatized generic FNVa hash function. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Hash\+Int , typename CharT , std\+::size\+\_\+t N$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ac550cfcd270e104a007c7b7a8fcad098}{FNVa\+\_\+a}} (const CharT(\&s)\mbox{[}N\mbox{]}, Hash\+Int hval=\mbox{\hyperlink{structkblib_1_1fnv_1_1fnv__offset}{fnv\+::fnv\+\_\+offset}}$<$ Hash\+Int $>$\+::value) noexcept -\/$>$ Hash\+Int
\begin{DoxyCompactList}\small\item\em A templatized FNVa hash function, for raw character arrays, such as string literals. \end{DoxyCompactList}\item 
constexpr auto \mbox{\hyperlink{namespacekblib_a8d67d64eac176d35844a629ff0aeacdf}{FNV32a}} (std\+::string\+\_\+view s, std\+::uint32\+\_\+t hval=\mbox{\hyperlink{structkblib_1_1fnv_1_1fnv__offset}{fnv\+::fnv\+\_\+offset}}$<$ std\+::uint32\+\_\+t $>$\+::value) noexcept -\/$>$ std\+::uint32\+\_\+t
\begin{DoxyCompactList}\small\item\em A standard FNV32a hash function, for string\+\_\+views. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Hash\+Int $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ab67d69cffbdb7f096d195c345df0752b}{FNVa\+\_\+s}} (const char $\ast$begin, std\+::size\+\_\+t \mbox{\hyperlink{namespacekblib_a793fd30664717fe1da593bf53e895e9d}{length}}, Hash\+Int hval=\mbox{\hyperlink{structkblib_1_1fnv_1_1fnv__offset}{fnv\+::fnv\+\_\+offset}}$<$ Hash\+Int $>$\+::value) noexcept -\/$>$ Hash\+Int
\item 
{\footnotesize template$<$std\+::size\+\_\+t N$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a79a2361911fe2007b9867f8514fbcdea}{FNV32a\+\_\+a}} (const char(\&s)\mbox{[}N\mbox{]}, std\+::uint32\+\_\+t hval=\mbox{\hyperlink{structkblib_1_1fnv_1_1fnv__offset}{fnv\+::fnv\+\_\+offset}}$<$ std\+::uint32\+\_\+t $>$\+::value) noexcept -\/$>$ std\+::uint32\+\_\+t
\begin{DoxyCompactList}\small\item\em A standard FNV32a hash function, for raw character arrays, such as string literals. \end{DoxyCompactList}\item 
constexpr auto \mbox{\hyperlink{namespacekblib_a6a4c0dd6b1f34b0b9ff7e71230e68750}{FNV32a\+\_\+s}} (const char $\ast$begin, std\+::size\+\_\+t \mbox{\hyperlink{namespacekblib_a793fd30664717fe1da593bf53e895e9d}{length}}, uint32\+\_\+t hval=\mbox{\hyperlink{structkblib_1_1fnv_1_1fnv__offset}{fnv\+::fnv\+\_\+offset}}$<$ std\+::uint32\+\_\+t $>$\+::value) noexcept -\/$>$ std\+::uint32\+\_\+t
\item 
constexpr auto \mbox{\hyperlink{namespacekblib_1_1literals_a626ed71532f5d103c9828ea9370a5842}{operator\char`\"{}\char`\"{}\+\_\+fnv32}} (const char $\ast$str, std\+::size\+\_\+t \mbox{\hyperlink{namespacekblib_a793fd30664717fe1da593bf53e895e9d}{length}}) noexcept -\/$>$ std\+::uint32\+\_\+t
\begin{DoxyCompactList}\small\item\em A literal suffix that produces the FNV32a hash of a string literal. \end{DoxyCompactList}\item 
constexpr auto \mbox{\hyperlink{namespacekblib_1_1literals_a36cd43f6611c58129a26aba0ac78e434}{operator\char`\"{}\char`\"{}\+\_\+fnv64}} (const char $\ast$str, std\+::size\+\_\+t \mbox{\hyperlink{namespacekblib_a793fd30664717fe1da593bf53e895e9d}{length}}) noexcept -\/$>$ std\+::uint64\+\_\+t
\begin{DoxyCompactList}\small\item\em A literal suffix that produces the FNV64a hash of a string literal. \end{DoxyCompactList}\item 
constexpr auto \mbox{\hyperlink{namespacekblib_1_1literals_a598ef69dec16cf39b62eb2967789eafc}{operator\char`\"{}\char`\"{}\+\_\+fnv32}} (unsigned long long val) -\/$>$ std\+::uint32\+\_\+t
\item 
constexpr auto \mbox{\hyperlink{namespacekblib_1_1literals_abb287d29a45213778942fec4b9aecc86}{operator\char`\"{}\char`\"{}\+\_\+fnv64}} (unsigned long long val) -\/$>$ std\+::uint64\+\_\+t
\item 
{\footnotesize template$<$typename string  = std\+::string$>$ }\\auto \mbox{\hyperlink{namespacekblib_a27540546baa5adb2684d6b01b82d9594}{to\+UTF8}} (const icu\+::\+Unicode\+String \&s) -\/$>$ string
\begin{DoxyCompactList}\small\item\em Convert a Unicode\+String to a UTF-\/8 string. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename string $>$ }\\auto \mbox{\hyperlink{namespacekblib_aa90b416613cc12193d5e239ab10ca8a5}{from\+UTF8}} (string s) -\/$>$ icu\+::\+Unicode\+String
\begin{DoxyCompactList}\small\item\em Convert a UTF-\/8 string into a Unicode\+String. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename string  = std\+::u32string$>$ }\\auto \mbox{\hyperlink{namespacekblib_a1308a2a6edc5a4ed26a7c5b5dea812d1}{to\+UTF32}} (const icu\+::\+Unicode\+String \&s) -\/$>$ string
\begin{DoxyCompactList}\small\item\em Converts a Unicode\+String to UTF-\/32. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename string $>$ }\\auto \mbox{\hyperlink{namespacekblib_aca43a53354402a1f1352b0da9ac32fee}{from\+UTF32}} (string s) -\/$>$ icu\+::\+Unicode\+String
\begin{DoxyCompactList}\small\item\em Converts a UTF-\/32 string into a Unicode\+String. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T $>$ }\\auto \mbox{\hyperlink{namespacekblib_a8f83f373124cb00091260e5bab6c4b60}{from\+Str}} (const icu\+::\+Unicode\+String \&val, const char $\ast$type=typeid(T).name()) -\/$>$ T
\begin{DoxyCompactList}\small\item\em Reencodes val to UTF-\/8 and then converts it to T using the primary overload. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename D  = std\+::string, typename std\+::enable\+\_\+if\+\_\+t$<$ \mbox{\hyperlink{namespacekblib_acec974f6a75e6884147ef326bbd78d35}{is\+\_\+contiguous\+\_\+v}}$<$ D $>$, int $>$  = 0$>$ }\\auto \mbox{\hyperlink{namespacekblib_a629b6bb6b53b02c3ae0129ddc128eb5c}{get\+\_\+contents}} (std\+::istream \&in, D \&out) -\/$>$ auto
\item 
{\footnotesize template$<$typename D  = std\+::string, typename string $>$ }\\auto \mbox{\hyperlink{namespacekblib_a842d755850ee1a876ee0587931a7bd16}{get\+\_\+file\+\_\+contents}} (const string \&filename) -\/$>$ std\+::optional$<$ D $>$
\begin{DoxyCompactList}\small\item\em Read the entire contents of a file into a container, such as std\+::string or std\+::vector$<$char$>$. Note that it will be most efficient to read into contiguous containers, as opposed to non-\/contiguous containers. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename D  = std\+::string, typename string $>$ }\\auto \mbox{\hyperlink{namespacekblib_a28d32b32bd6bbd28e27a80c236d46cd2}{try\+\_\+get\+\_\+file\+\_\+contents}} (const string \&filename) -\/$>$ D
\begin{DoxyCompactList}\small\item\em Read the entire contents of a file into a container, such as std\+::string or std\+::vector$<$char$>$. Note that it will be most efficient to read into contiguous containers, as opposed to non-\/contiguous containers. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{namespacekblib_a8ec120cbc5e4f7c1624f07e48660b7f9}{getline}} (std\+::istream \&is) -\/$>$ std\+::string
\begin{DoxyCompactList}\small\item\em By-\/value std\+::getline wrapper. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{namespacekblib_a09ae80b5cc20a7bcb10eda5d227c5b22}{eat\+\_\+word}} (std\+::istream \&is) -\/$>$ std\+::istream \&
\begin{DoxyCompactList}\small\item\em Consume all non-\/spaces to first break, then eat that, too. \end{DoxyCompactList}\item 
std\+::istream \& \mbox{\hyperlink{namespacekblib_a892c5cf646b0bd6fbe72caa7cd6afa3a}{eat\+\_\+space}} (std\+::istream \&is)
\begin{DoxyCompactList}\small\item\em Eat spaces, don\textquotesingle{}t eat an extra. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename CharT , typename Traits $>$ }\\auto \mbox{\hyperlink{namespacekblib_a1c69e2ede07e021b4a480b78496912e2}{nl}} (std\+::basic\+\_\+istream$<$ CharT, Traits $>$ \&is) -\/$>$ std\+::basic\+\_\+istream$<$ CharT, Traits $>$ \&
\begin{DoxyCompactList}\small\item\em Read in spaces until the end of the line is found. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename CharT $>$ }\\auto \mbox{\hyperlink{namespacekblib_a667a06da2b3ec8f82f8a22aee03e46d7}{unformatted\+\_\+expect}} (CharT c) -\/$>$ auto
\begin{DoxyCompactList}\small\item\em Read a character from an input stream only if it equals c. Acts as an Unformatted\+Input\+Operation, that is, it will not ignore any leading whitespace. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename CharT $>$ }\\auto \mbox{\hyperlink{namespacekblib_a92cc98441a6881da833d69dad234f8be}{expect}} (CharT c) -\/$>$ auto
\begin{DoxyCompactList}\small\item\em Read a character from an input stream only if it equals c. Acts as a Formatted\+Input\+Operation, that is, leading whitespace is ignored. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename CharT , typename... O, template$<$ typename, typename... $>$ class string$>$ }\\auto \mbox{\hyperlink{namespacekblib_ab094fc53f62f0f36e6f68eb3a4e70d5b}{get\+\_\+line}} (string$<$ CharT, O... $>$ \&str) -\/$>$ auto
\begin{DoxyCompactList}\small\item\em Read a whole line into a std\+::basic\+\_\+string-\/like class template. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename CharT , typename... O, template$<$ typename, typename... $>$ class string$>$ }\\auto \mbox{\hyperlink{namespacekblib_a6ceffff6280ce849da581b3d46ce495b}{get\+\_\+line}} (string$<$ CharT, O... $>$ \&str, CharT delim) -\/$>$ auto
\begin{DoxyCompactList}\small\item\em Read a delimited string into a std\+::basic\+\_\+string-\/like class template. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename F , typename CharT , typename Tr $>$ }\\std\+::basic\+\_\+istream$<$ CharT, Tr $>$ \& \mbox{\hyperlink{namespacekblib_af2086a9685efdca3d6b066f16a4fa4df}{operator$>$$>$}} (std\+::basic\+\_\+istream$<$ CharT, Tr $>$ \&is, \mbox{\hyperlink{structkblib_1_1get__manip}{get\+\_\+manip}}$<$ F $>$ func)
\begin{DoxyCompactList}\small\item\em Actually calls the manipulator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename F , typename CharT , typename Tr $>$ }\\std\+::basic\+\_\+ostream$<$ CharT, Tr $>$ \& \mbox{\hyperlink{namespacekblib_a13dd6e6d415d913d810092d9b575fd6b}{operator$<$$<$}} (std\+::basic\+\_\+ostream$<$ CharT, Tr $>$ \&is, \mbox{\hyperlink{structkblib_1_1get__manip}{get\+\_\+manip}}$<$ F $>$ func)
\begin{DoxyCompactList}\small\item\em Actually calls the manipulator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename StreamA , typename StreamB $>$ }\\auto \mbox{\hyperlink{namespacekblib_a5731c616c6080a1e7b8f2155e76373df}{tee}} (StreamA \&\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, StreamB \&b) -\/$>$ \mbox{\hyperlink{classkblib_1_1basic__teestream}{basic\+\_\+teestream}}$<$ StreamA, StreamB $>$
\item 
{\footnotesize template$<$typename File  = std\+::fstream$>$ }\\auto \mbox{\hyperlink{namespacekblib_af0e8f19112bf1c9749dbc740205a500e}{scoped\+\_\+file}} (const std\+::filesystem\+::path \&path, std\+::ios\+\_\+base\+::openmode mode=std\+::ios\+\_\+base\+::in$\vert$std\+::ios\+\_\+base\+::out)
\item 
{\footnotesize template$<$typename File  = std\+::fstream$>$ }\\auto \mbox{\hyperlink{namespacekblib_aa2ab36dcd40fe0308a4df9359b90fb6f}{tmpfile}} (const std\+::filesystem\+::path \&path, std\+::ios\+\_\+base\+::openmode mode=std\+::ios\+\_\+base\+::in$\vert$std\+::ios\+\_\+base\+::out)
\item 
{\footnotesize template$<$typename P $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a1c2aa67048789f77bea56734a583d3d1}{to\+\_\+pointer}} (P \&\&p) noexcept -\/$>$ auto $\ast$
\begin{DoxyCompactList}\small\item\em Gets a raw pointer out of any smart pointer or iterator you might pass in, without dereferencing it or relying on a \mbox{\hyperlink{namespacekblib_a951945f1ed7d42562a7e6fa8cf8f0405}{get()}} method. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , typename Comp  = std\+::less$<$value\+\_\+type\+\_\+linear\+\_\+t$<$\+Container$>$$>$$>$ }\\auto \mbox{\hyperlink{namespacekblib_a7d43c2f73a1e2d35ca150b9ac3a43d58}{max\+\_\+element}} (Container \&c, Comp comp) -\/$>$ \mbox{\hyperlink{namespacekblib_ac04bc7261d579d570a3847df654bc209}{value\+\_\+type\+\_\+linear\+\_\+t}}$<$ Container $>$ $\ast$
\item 
{\footnotesize template$<$typename C $>$ }\\\mbox{\hyperlink{classkblib_1_1counting__back__insert__iterator}{counting\+\_\+back\+\_\+insert\+\_\+iterator}}$<$ C $>$ \mbox{\hyperlink{namespacekblib_a459982020db617ac2a1dbd2c3e2345ea}{counting\+\_\+back\+\_\+inserter}} (C \&c, std\+::size\+\_\+t count=0)
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a5127cbe40846f5ab2a05694de92d3d2e}{operator+}} (T val, \mbox{\hyperlink{structkblib_1_1adjuster}{adjuster}} \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}) noexcept -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not \mbox{\hyperlink{structkblib_1_1detail__iterators_1_1is__addable}{detail\+\_\+iterators\+::is\+\_\+addable}}$<$ T, std\+::ptrdiff\+\_\+t $>$\+::value, decltype(std\+::advance(val, a.\+adj))$>$
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ab797e9d5c5989c277312518fc95667ae}{operator+}} (T val, \mbox{\hyperlink{structkblib_1_1incrementer}{incrementer}}) -\/$>$ T
\begin{DoxyCompactList}\small\item\em Increments val. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ab8c4154f71801dac0f43dcb2e1869e8b}{operator+}} (T val, \mbox{\hyperlink{structkblib_1_1decrementer}{decrementer}}) -\/$>$ T
\begin{DoxyCompactList}\small\item\em Decrements val. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value , typename Delta  = int$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a72690688922a2d4ae9a3e46ff0c1a9a9}{range}} (Value \mbox{\hyperlink{namespacekblib_1_1nums_a24555c4b07301e176bf192adf4e80499}{min}}, Value \mbox{\hyperlink{namespacekblib_1_1nums_a64067ecc4167ce1cfe32860ef5c1dc47}{max}}, Delta step=0) -\/$>$ \mbox{\hyperlink{classkblib_1_1range__t}{range\+\_\+t}}$<$ Value, Delta $>$
\begin{DoxyCompactList}\small\item\em Constructs a range from beginning, end, and step amount. The range is half-\/open, that is min is in the range but max is not. If unspecified, the step is automatically either 1 or -\/1, depending on whether max \texorpdfstring{$>$}{>} min. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ac136a707b14a83235d82c267830f0cd9}{range}} (Value \mbox{\hyperlink{namespacekblib_1_1nums_a64067ecc4167ce1cfe32860ef5c1dc47}{max}}) -\/$>$ \mbox{\hyperlink{classkblib_1_1range__t}{range\+\_\+t}}$<$ Value, \mbox{\hyperlink{structkblib_1_1incrementer}{incrementer}} $>$
\begin{DoxyCompactList}\small\item\em Constructs a half-\/open range \mbox{[}0, max). The step is automatically determined based on the sign of max. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value , typename Delta  = int$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a75ac0367cce25b0498451e5e5c711297}{irange}} (Value, Value, Delta=0)
\item 
{\footnotesize template$<$std\+::size\+\_\+t I, typename T $>$ }\\auto \mbox{\hyperlink{namespacekblib_a554b8034891b88291ee4014c5618e41f}{get}} (\mbox{\hyperlink{classkblib_1_1enumeration}{enumeration}}$<$ T $>$ \&\&\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}) -\/$>$ decltype(auto)
\item 
{\footnotesize template$<$std\+::size\+\_\+t I, typename T $>$ }\\auto \mbox{\hyperlink{namespacekblib_a41c0ca0fe1a53fd119fc343cf9a4040e}{get}} (const \mbox{\hyperlink{classkblib_1_1enumeration}{enumeration}}$<$ T $>$ \&\&\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}) -\/$>$ decltype(auto)
\item 
{\footnotesize template$<$std\+::size\+\_\+t I, typename T $>$ }\\auto \mbox{\hyperlink{namespacekblib_a052e6c7d0944cda0ce9203c1036fc745}{get}} (volatile \mbox{\hyperlink{classkblib_1_1enumeration}{enumeration}}$<$ T $>$ \&\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}) -\/$>$ decltype(auto)
\item 
{\footnotesize template$<$std\+::size\+\_\+t I, typename T $>$ }\\auto \mbox{\hyperlink{namespacekblib_a2888a4a5d49c15f73ced60c66c31dc15}{get}} (const volatile \mbox{\hyperlink{classkblib_1_1enumeration}{enumeration}}$<$ T $>$ \&\mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}}) -\/$>$ decltype(auto)
\item 
{\footnotesize template$<$typename It , typename EIt $>$ }\\auto \mbox{\hyperlink{namespacekblib_a0084bbd67ea381c6954c3d82c3cd0691}{magic\+\_\+enumerate}} (It begin, EIt end) -\/$>$ \mbox{\hyperlink{classkblib_1_1enumerator__t}{enumerator\+\_\+t}}$<$ It, EIt $>$
\begin{DoxyCompactList}\small\item\em Allow access to indexes while using range-\/based for loops. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Range $>$ }\\auto \mbox{\hyperlink{namespacekblib_a5617b65c2a82a734f2095c16f00e316c}{magic\+\_\+enumerate}} (Range \&\&r) -\/$>$ auto
\begin{DoxyCompactList}\small\item\em Allow access to indexes while using range-\/based for loops. Safe to use with rvalues. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Iter1 , typename Iter2 $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a893a2961c20b0657dffbbd2fe8f362c4}{indirect}} (Iter1 begin, Iter2 end) noexcept(noexcept(\mbox{\hyperlink{structkblib_1_1indirect__range}{indirect\+\_\+range}}$<$ Iter1, Iter2 $>$\{begin, end\})) -\/$>$ \mbox{\hyperlink{structkblib_1_1indirect__range}{indirect\+\_\+range}}$<$ Iter1, Iter2 $>$
\begin{DoxyCompactList}\small\item\em Create a range from an iterator pair. Primarily useful for range-\/for loops. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Iter1 , typename Iter2 $>$ }\\\mbox{\hyperlink{namespacekblib_adbf35ad5c1ebb477db462d817a1a03cc}{indirect\+\_\+range}} (Iter1, Iter2) -\/$>$ \mbox{\hyperlink{structkblib_1_1indirect__range}{indirect\+\_\+range}}$<$ Iter1, Iter2 $>$
\item 
{\footnotesize template$<$typename Iter1 , typename Iter2 $>$ }\\auto \mbox{\hyperlink{namespacekblib_a77828de35fa34ad16a59080a4cf5ca91}{cry\+\_\+enumerate}} (Iter1 begin, Iter2 end) -\/$>$ auto
\item 
{\footnotesize template$<$typename It , typename operation $>$ }\\\mbox{\hyperlink{namespacekblib_aa807d817e32edd6ed91e4f151dde9ae2}{transform\+\_\+iterator}} (It, operation) -\/$>$ \mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}}$<$ It, operation $>$
\item 
{\footnotesize template$<$typename base\+\_\+iterator , typename operation $>$ }\\auto \mbox{\hyperlink{namespacekblib_aed7bb6b5bb036248bdf3f0832e8404a8}{make\+\_\+transform\+\_\+iterator}} (base\+\_\+iterator it, operation op) noexcept(noexcept(\mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\{ it, std\+::move(op)\})) -\/$>$ \mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$
\begin{DoxyCompactList}\small\item\em Factory function to make transform\+\_\+iterators. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename base\+\_\+iterator , typename operation $>$ }\\auto \mbox{\hyperlink{namespacekblib_a05e897a858310bc166f65965eadf8f66}{transformer}} (base\+\_\+iterator it, operation op) noexcept(noexcept(\mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\{it, std\+::move(op)\})) -\/$>$ \mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$
\begin{DoxyCompactList}\small\item\em Factory function to make transform\+\_\+iterators. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename It , typename End\+It , typename operation $>$ }\\auto \mbox{\hyperlink{namespacekblib_a0f9b71b4a51492465cca27cdd0deeef6}{transform\+\_\+range}} (It begin, End\+It end, operation op) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a893a2961c20b0657dffbbd2fe8f362c4}{indirect}}(\mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}}\{begin, op\}, end))) -\/$>$ auto
\item 
{\footnotesize template$<$typename Input\+It1 , typename End\+It , typename Input\+It2 $>$ }\\auto \mbox{\hyperlink{namespacekblib_a0768784de97af5384c76b4009f22fb31}{zip}} (Input\+It1 begin1, End\+It end1, Input\+It2 begin2) noexcept(\mbox{\hyperlink{structkblib_1_1zip__iterator}{zip\+\_\+iterator}}$<$ Input\+It1, End\+It, Input\+It2 $>$\+::is\+\_\+nothrow\+\_\+copyable) -\/$>$ \mbox{\hyperlink{structkblib_1_1zip__iterator}{zip\+\_\+iterator}}$<$ Input\+It1, End\+It, Input\+It2 $>$
\begin{DoxyCompactList}\small\item\em Iterate over two ranges in lockstep, like Python\textquotesingle{}s zip. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Range1 , typename Range2 $>$ }\\auto \mbox{\hyperlink{namespacekblib_af06b17342da0e55aff646066ce8c283d}{zip}} (Range1 \&\&r1, Range2 \&\&r2) noexcept(\mbox{\hyperlink{structkblib_1_1zip__iterator}{zip\+\_\+iterator}}$<$ decltype(begin(r1)), decltype(end(r1)), decltype(begin(r2))$>$\+::is\+\_\+nothrow\+\_\+copyable) -\/$>$ \mbox{\hyperlink{structkblib_1_1zip__iterator}{zip\+\_\+iterator}}$<$ decltype(begin(r1)), decltype(end(r1)), decltype(begin(r2))$>$
\begin{DoxyCompactList}\small\item\em Iterate over two ranges in lockstep, like Python\textquotesingle{}s zip. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename F $>$ }\\auto \mbox{\hyperlink{namespacekblib_a18d941bdcaa41e86334ca14ffa954b28}{consumer}} (F f) -\/$>$ \mbox{\hyperlink{classkblib_1_1consume__iterator}{consume\+\_\+iterator}}$<$ F $>$
\begin{DoxyCompactList}\small\item\em Creates a \mbox{\hyperlink{classkblib_1_1consume__iterator}{consume\+\_\+iterator}} of deduced type F. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T , typename Deleter $>$ }\\auto \mbox{\hyperlink{namespacekblib_af2d860ddf535b7091b11fc07aabe472f}{make\+\_\+cond\+\_\+ptr}} (std\+::unique\+\_\+ptr$<$ T, Deleter $>$ \&\&arg) noexcept -\/$>$ \mbox{\hyperlink{classkblib_1_1cond__ptr}{cond\+\_\+ptr}}$<$ T, Deleter $>$
\item 
{\footnotesize template$<$typename T $>$ }\\auto \mbox{\hyperlink{namespacekblib_a52d62500a095e18991f3ad59dcc83327}{make\+\_\+cond\+\_\+ptr}} (T $\ast$arg, bool owner=false) noexcept -\/$>$ \mbox{\hyperlink{classkblib_1_1cond__ptr}{cond\+\_\+ptr}}$<$ T $>$
\item 
{\footnotesize template$<$typename T , typename Deleter $>$ }\\auto \mbox{\hyperlink{namespacekblib_a6b20de5026ac934359d2cdc1d5426611}{make\+\_\+cond\+\_\+ptr}} (T $\ast$arg, Deleter del) noexcept -\/$>$ \mbox{\hyperlink{classkblib_1_1cond__ptr}{cond\+\_\+ptr}}$<$ T, Deleter $>$
\item 
{\footnotesize template$<$typename T , typename Deleter $>$ }\\auto \mbox{\hyperlink{namespacekblib_ab19e9968b3988d68b39eaf3b09342d6e}{make\+\_\+cond\+\_\+ptr}} (T $\ast$arg, bool owner, Deleter del) noexcept -\/$>$ \mbox{\hyperlink{classkblib_1_1cond__ptr}{cond\+\_\+ptr}}$<$ T, Deleter $>$
\item 
constexpr auto \mbox{\hyperlink{namespacekblib_a5027ae40714e0bac3fbc7498f9875783}{operator$\vert$}} (\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}} l, \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}} r) noexcept -\/$>$ \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}}
\item 
constexpr auto \mbox{\hyperlink{namespacekblib_abb6b875ecf3a38a03dcd0b15aca7a0ea}{operator\&}} (\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}} l, \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}} r) noexcept -\/$>$ \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}}
\item 
constexpr auto \mbox{\hyperlink{namespacekblib_ae2779c90b5c731d209e9cc1f555a18de}{operator$\ast$}} (\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}} l, bool r) noexcept -\/$>$ \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}}
\item 
{\footnotesize template$<$typename T $>$ }\\auto \mbox{\hyperlink{namespacekblib_afc76eb7c2cd74d00487dcfcf9f326c53}{noop}} (void $\ast$, const T $\ast$) -\/$>$ T $\ast$
\begin{DoxyCompactList}\small\item\em Does nothing; matches the copy construction signature. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T , bool nothrow$>$ }\\auto \mbox{\hyperlink{namespacekblib_a26ab0d2883ebc03dffa0dabedfc7d906}{noop}} (void $\ast$, T $\ast$) noexcept(nothrow) -\/$>$ T $\ast$
\begin{DoxyCompactList}\small\item\em Does nothing; matches the move construction signature. \end{DoxyCompactList}\item 
{\footnotesize template$<$bool warn$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a377adf58727d546906018e9e2675b98c}{poly\+\_\+warn\+\_\+if}} () -\/$>$ std\+::nullptr\+\_\+t
\item 
template$<$$>$ constexpr auto \mbox{\hyperlink{namespacekblib_a500de2a9e580338a753636936fd7d533}{poly\+\_\+warn\+\_\+if$<$ true $>$}} () -\/$>$ std\+::nullptr\+\_\+t
\item 
{\footnotesize template$<$typename Array , typename Random\+Generator , typename freqtype  = double$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_af901ee65b94ee7e3a2537b6ea846ba28}{choose\+Categorical}} (Array \&\&cats, Random\+Generator \&r) -\/$>$ decltype(cats.\+size())
\begin{DoxyCompactList}\small\item\em Given a categorical distribution cats, selects one category. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Gen , typename Source $>$ }\\auto \mbox{\hyperlink{namespacekblib_a57f70c5d0b049085ef57f5e892834e64}{seeded}} (Source \&\&s) -\/$>$ Gen
\item 
{\footnotesize template$<$typename Gen $>$ }\\auto \mbox{\hyperlink{namespacekblib_a5057ba63335ea5487c0370c3ce5bc332}{seeded}} () -\/$>$ Gen
\item 
{\footnotesize template$<$typename UInt\+Type $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a5a9fb5dbd7082695242567ef3bdfe89c}{ipow2}} (UInt\+Type b) noexcept -\/$>$ UInt\+Type
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a0657f89209aa9c1f4c95ce00e2744f24}{in\+\_\+range}} (const T \&v, \mbox{\hyperlink{structkblib_1_1detail__simple_1_1simple__range}{detail\+\_\+simple\+::simple\+\_\+range}}$<$ T $>$ r)
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_afef50b8a478317dbcbc249e688f6e93b}{in\+\_\+range\+\_\+i}} (const T \&v, \mbox{\hyperlink{structkblib_1_1detail__simple_1_1simple__range}{detail\+\_\+simple\+::simple\+\_\+range}}$<$ T $>$ r)
\item 
{\footnotesize template$<$typename F , typename... T$>$ }\\auto \mbox{\hyperlink{namespacekblib_a1490492d82c28f195f0f44a9d88fb2cc}{map}} (F f, T \&\&... t) noexcept(noexcept(std\+::tuple\{ \mbox{\hyperlink{namespacekblib_a3873199be1651ec4e0fda92171b2b82c}{kblib\+::apply}}(f, std\+::forward$<$ T $>$(t))...\})) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not \mbox{\hyperlink{namespacekblib_aba974d3674b8fe6b1cf75e16a66322f0}{any\+\_\+void}}$<$ decltype(\mbox{\hyperlink{namespacekblib_a3873199be1651ec4e0fda92171b2b82c}{kblib\+::apply}}(f, std\+::forward$<$ T $>$(t)))... $>$, decltype(std\+::tuple\{\mbox{\hyperlink{namespacekblib_a3873199be1651ec4e0fda92171b2b82c}{kblib\+::apply}}(f, std\+::forward$<$ T $>$(t))...\})$>$
\item 
{\footnotesize template$<$typename F $>$ }\\auto \mbox{\hyperlink{namespacekblib_a87e300394cbdcefd780d0904b31f4c07}{defer}} (F f)
\item 
{\footnotesize template$<$typename Binary\+Operation $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ac4b288376b8a5fcf8fceba9e426a45fa}{flip}} () -\/$>$ auto
\begin{DoxyCompactList}\small\item\em Transforms a stateless binary operation into one which takes reversed arguments. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Binary\+Operation $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ab2c94cb864bd6de586bfd329e515df32}{flip}} (Binary\+Operation op) -\/$>$ auto
\begin{DoxyCompactList}\small\item\em Transforms a binary operation into one which takes reversed arguments. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T , std\+::size\+\_\+t N$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a0f3921343096a5041fd08ecf6287701a}{is\+\_\+consecutive}} (const T(\&array)\mbox{[}N\mbox{]}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+integral$<$ T $>$\+::value, bool $>$
\item 
constexpr auto \mbox{\hyperlink{namespacekblib_a5633a966716e66c8230d039c7615e393}{filg2}} (const std\+::bitset$<$ std\+::numeric\+\_\+limits$<$ std\+::uintmax\+\_\+t $>$\+::digits $>$ val) noexcept -\/$>$ int
\begin{DoxyCompactList}\small\item\em Floored integer binary logarithm. Returns floor(lb(val)). \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T $>$ }\\auto \mbox{\hyperlink{namespacekblib_a535ff4e383fdfe8e07c637d574b68008}{safe\+\_\+auto}} (T \&\&in) -\/$>$ T
\begin{DoxyCompactList}\small\item\em Safely propagate an xvalue or lvalue without dangling references. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T $>$ }\\auto \mbox{\hyperlink{namespacekblib_a5b06c53a850d4a275c26a068b907caeb}{safe\+\_\+auto}} (T \&in) -\/$>$ T \&
\begin{DoxyCompactList}\small\item\em Safely propagate an xvalue or lvalue without dangling references. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Left\+Container , typename Right\+Container $>$ }\\auto \mbox{\hyperlink{namespacekblib_a4b5107514451c00067d9ec0c58721009}{arraycat}} (Left\+Container A, Right\+Container \&\&B) noexcept(noexcept(A.\+insert(A.\+end(), B.\+begin(), B.\+end())) and std\+::is\+\_\+nothrow\+\_\+move\+\_\+constructible$<$ Left\+Container $>$\+::value) -\/$>$ Left\+Container
\begin{DoxyCompactList}\small\item\em Concatenate two dynamic containers together. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}} (const std\+::initializer\+\_\+list$<$ T $>$ \&a) -\/$>$ auto
\begin{DoxyCompactList}\small\item\em Index an array literal without naming its type. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Random\+Access\+It , typename Compare  = std\+::less$<$$>$$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a43cda388d529e7f9553850b366ef3380}{insertion\+\_\+sort}} (const Random\+Access\+It begin, const Random\+Access\+It end, Compare \&\&compare=\{\}) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a4aadfdece3872e99551aa812ac3bac27}{swap}}($\ast$begin, $\ast$begin)) and noexcept(compare($\ast$begin, $\ast$begin))) -\/$>$ void
\begin{DoxyCompactList}\small\item\em In-\/place insertion sort. As is usual, it is stable. Provides as a guarantee that it will perform no moves on sorted input. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Random\+Access\+It , typename Random\+Access\+It2 , typename Compare  = std\+::less$<$$>$$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a654de993e7d26592cdc4e05443150296}{insertion\+\_\+sort\+\_\+copy}} (const Random\+Access\+It begin, const Random\+Access\+It end, const Random\+Access\+It2 d\+\_\+begin, const Random\+Access\+It2 d\+\_\+end, Compare \&\&compare=\{\}) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_1_1detail__algorithm_a7e9dcc6ba8db08f7ca672ea9f6f20f5a}{detail\+\_\+algorithm\+::shift\+\_\+backward}}(d\+\_\+begin, d\+\_\+begin, d\+\_\+end)) and noexcept($\ast$d\+\_\+begin= $\ast$begin)) -\/$>$ void
\begin{DoxyCompactList}\small\item\em Out-\/of-\/place insertion sort, which does not modify the input. Provides as a guarantee that it will perform no moves on sorted input. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Random\+Access\+It , typename Random\+Access\+It2 , typename Compare  = std\+::less$<$$>$$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a707446076d1cc9e803e1041117924a73}{adaptive\+\_\+insertion\+\_\+sort\+\_\+copy}} (const Random\+Access\+It begin, const Random\+Access\+It end, const Random\+Access\+It2 d\+\_\+begin, const Random\+Access\+It2 d\+\_\+end, Compare \&\&compare=\{\}) noexcept(noexcept(\mbox{\hyperlink{namespacekblib_1_1detail__algorithm_a7e9dcc6ba8db08f7ca672ea9f6f20f5a}{detail\+\_\+algorithm\+::shift\+\_\+backward}}(d\+\_\+begin, d\+\_\+begin, d\+\_\+end)) and noexcept($\ast$d\+\_\+begin= $\ast$begin)) -\/$>$ void
\begin{DoxyCompactList}\small\item\em An adaptive sort which, at the cost of some additional work (time complexity Θ(sqrt(n))), avoids quadratic behavior for reverse-\/sorted inputs (and, in fact, handles them in optimal time). It\textquotesingle{}s still possible to fool it, but it requires a staggered input, which is a highly unlikely shape for random data. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a407763ccb393b23e4d9616cd76f03fe5}{byte\+\_\+count}} (T) noexcept -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+integral$<$ T $>$\+::value, std\+::size\+\_\+t $>$
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_aafdfcc252a37b2ca60ce1807d188d658}{byte\+\_\+count}} (T $\ast$) noexcept -\/$>$ std\+::size\+\_\+t
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_afca31fdc704e55f5ffabeea66e533794}{byte\+\_\+count}} (const std\+::unique\+\_\+ptr$<$ T $>$ \&) noexcept -\/$>$ std\+::size\+\_\+t
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a913269f668b6359d0ebc552f8fdb9bc6}{byte\+\_\+count}} (const T \&x) noexcept -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ is\+\_\+linear\+\_\+container\+\_\+v$<$ T $>$ and(std\+::is\+\_\+integral$<$ typename T\+::value\+\_\+type $>$\+::value or \mbox{\hyperlink{namespacekblib_ad80f4ade2acc180c9caf217300f2ffa5}{is\+\_\+byte\+\_\+v}}$<$ T $>$) and sizeof(typename T\+::value\+\_\+type)==1, std\+::size\+\_\+t $>$
\item 
constexpr auto \mbox{\hyperlink{namespacekblib_a84bbf075be5e924b9ff6efd6fb9ea0de}{byte\+\_\+count}} (...) -\/$>$ void=delete
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ae8bc9b87eff6f20b23a0da335c9501b9}{get\+\_\+byte\+\_\+index}} (T x, std\+::size\+\_\+t idx) noexcept -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+integral$<$ T $>$\+::value, unsigned char $>$
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a9eb65dc24cfed091382a277d77ac00a0}{get\+\_\+byte\+\_\+index}} (const T \&x, std\+::size\+\_\+t idx) noexcept -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+enum$<$ T $>$\+::value, unsigned char $>$
\item 
{\footnotesize template$<$typename T $>$ }\\auto \mbox{\hyperlink{namespacekblib_aa0ce497444d4994f7a2c9832e415f607}{get\+\_\+byte\+\_\+index}} (T $\ast$x, std\+::size\+\_\+t idx) noexcept -\/$>$ unsigned char
\item 
{\footnotesize template$<$typename T $>$ }\\auto \mbox{\hyperlink{namespacekblib_adaffd058800d74e8a1573f1f15b8ec11}{get\+\_\+byte\+\_\+index}} (const std\+::unique\+\_\+ptr$<$ T $>$ \&x, std\+::size\+\_\+t idx) noexcept -\/$>$ unsigned char
\item 
{\footnotesize template$<$typename Random\+Access\+It , typename Unary\+Operation , typename Binary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a7b871050bf43912f54b38ba4ecf027fe}{sort\+\_\+transform}} (Random\+Access\+It begin, Random\+Access\+It end, Unary\+Operation \&\&\mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{transform}}, Binary\+Predicate \&\&compare) -\/$>$ void
\begin{DoxyCompactList}\small\item\em Sorts a range after applying a transformation. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Random\+Access\+It , typename Unary\+Operation $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a49c4ab0021b9025dcc1ab803f35130a7}{sort\+\_\+transform}} (Random\+Access\+It begin, Random\+Access\+It end, Unary\+Operation \&\&\mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{transform}}) -\/$>$ void
\item 
{\footnotesize template$<$typename Random\+Access\+It , typename Binary\+Predicate $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ae0cd00a865682926e1053ece9dc8ccdb}{sort}} (Random\+Access\+It begin, Random\+Access\+It end, Binary\+Predicate \&\&compare) -\/$>$ void
\begin{DoxyCompactList}\small\item\em Sorts a range. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Random\+Access\+It $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a3b409f97a9a14760031484b8285f7534}{sort}} (Random\+Access\+It begin, Random\+Access\+It end) -\/$>$ void
\item 
{\footnotesize template$<$typename T , typename U $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_abe1c06264c5e7d5b720416ff9d399fa6}{div}} (T num, U den) noexcept -\/$>$ decltype(std\+::div(num, den))
\item 
{\footnotesize template$<$typename U $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a90baddc76df99c83665b9fa3d45609e2}{calc\+\_\+fib\+\_\+size}} () noexcept -\/$>$ std\+::size\+\_\+t
\begin{DoxyCompactList}\small\item\em Calculate the index of the largest fibonacci number that can be represented by a given unsigned integral type. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename U , std\+::size\+\_\+t N = calc\+\_\+fib\+\_\+size$<$\+U$>$() + 1$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a96a777604ed38213d8fd0c1d53c3db70}{make\+\_\+fib\+\_\+arr}} () noexcept -\/$>$ \mbox{\hyperlink{structkblib_1_1trivial__array}{trivial\+\_\+array}}$<$ U, N $>$
\begin{DoxyCompactList}\small\item\em Generates the first N values of the fibonacci sequence. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename U  = std\+::uintmax\+\_\+t$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a23d97429c2ea683b83b8223699b30c68}{fibonacci}} (int n) noexcept -\/$>$ U
\begin{DoxyCompactList}\small\item\em Compile-\/time table fibonacci function. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T  = double$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a6a405377fe79d25ae9ef7a306ee0a32c}{pi}} () -\/$>$ T
\item 
{\footnotesize template$<$typename T  = double$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_aa2267a7d93c70cf8e895349e67c33134}{tau}} () -\/$>$ T
\item 
{\footnotesize template$<$typename T  = double$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a536badb265b62a85034f48e0eac76a1b}{e}} () -\/$>$ T
\item 
{\footnotesize template$<$typename T  = double$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a34b4ea421aff0111137a362312e102b3}{root\+\_\+2}} () -\/$>$ T
\item 
{\footnotesize template$<$typename T  = double$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a92ed80d087175fc1c71cb1894b55671a}{phi}} () -\/$>$ T
\item 
{\footnotesize template$<$typename A , typename F $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ab43fe07bcd0ea78681fada07d8b9016b}{saturating\+\_\+cast}} (F x) noexcept -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+integral$<$ A $>$\+::value and std\+::is\+\_\+integral$<$ F $>$\+::value and std\+::is\+\_\+unsigned$<$ A $>$\+::value, A $>$
\item 
{\footnotesize template$<$typename T , typename F $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a21af775319a41ef201e83f51c227f66a}{quantize\+\_\+step}} (F low, F delta, F val) noexcept -\/$>$ T
\begin{DoxyCompactList}\small\item\em Quantize a real-\/valued value into a discrete integer. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T , typename F $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_aa279b601e1bea7b5ae3f50954d398bb2}{quantize\+\_\+range}} (F low, F high, F val) noexcept -\/$>$ T
\begin{DoxyCompactList}\small\item\em Quantize a real-\/valued value into a discrete integer. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Str $>$ }\\auto \mbox{\hyperlink{namespacekblib_a2fdc3a299b0c7c4d8432c253ad3bb1ca}{strsize}} (Str \&\&str) -\/$>$ std\+::size\+\_\+t
\begin{DoxyCompactList}\small\item\em Determines the size in characters of any valid argument to concat or append. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename CharT $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a793fd30664717fe1da593bf53e895e9d}{length}} (const CharT $\ast$str) noexcept -\/$>$ std\+::size\+\_\+t
\item 
{\footnotesize template$<$typename string , typename F , typename... S$>$ }\\auto \mbox{\hyperlink{namespacekblib_ab4642bf06f44ec657126cea9a3272f1c}{append}} (string \&\&out, F \&\&f, S \&\&... tail) -\/$>$ void
\begin{DoxyCompactList}\small\item\em Given an object out of resizable stringlike type string, appends all other arguments to it. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename string  = std\+::string, typename F , typename... S$>$ }\\auto \mbox{\hyperlink{namespacekblib_a56615de712caf1b43a541f5387a4b847}{concat}} (F \&\&f, S \&\&... ins) -\/$>$ string
\begin{DoxyCompactList}\small\item\em Returns a string consisting of the concatenation of all arguments. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename string  = std\+::string, typename str $>$ }\\auto \mbox{\hyperlink{namespacekblib_abf1c606d3818a88fc90e6a264711c671}{concat}} (std\+::initializer\+\_\+list$<$ str $>$ ins) -\/$>$ string
\begin{DoxyCompactList}\small\item\em Returns a string consisting of the concatenation of all elements of an initializer list. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{namespacekblib_a9ac0c26180c8c2c92776c9f5ab5d9cb5}{isspace}} (char c) -\/$>$ bool
\item 
auto \mbox{\hyperlink{namespacekblib_a1b60023a02def7bd83ee293cb48979fb}{isspace}} (wchar\+\_\+t c) -\/$>$ bool
\item 
constexpr auto \mbox{\hyperlink{namespacekblib_a93e9fd5013f05b5433d36a010f7d447d}{is\+Aspace}} (char c) -\/$>$ bool
\item 
constexpr auto \mbox{\hyperlink{namespacekblib_a1d56bb6caa6ddf9f4bed73116501d2ed}{is\+Aspace}} (wchar\+\_\+t c) -\/$>$ bool
\item 
{\footnotesize template$<$typename \mbox{\hyperlink{namespacekblib_a72690688922a2d4ae9a3e46ff0c1a9a9}{range}} , typename string  = std\+::string$>$ }\\auto \mbox{\hyperlink{namespacekblib_a6127fe0b8fdc5d0374a81eddf28749df}{join}} (const \mbox{\hyperlink{namespacekblib_a72690688922a2d4ae9a3e46ff0c1a9a9}{range}} \&in, const string \&joiner=\char`\"{}\char`\"{})
\begin{DoxyCompactList}\small\item\em Concatenates all elements of a range together with an optional joiner. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container  = std\+::vector$<$std\+::string$>$, typename Predicate , typename String $>$ }\\auto \mbox{\hyperlink{namespacekblib_a05a551b96ff921bdd62cd2fc0110c54d}{split\+\_\+tokens}} (const String \&in, Predicate spacer) -\/$>$ \mbox{\hyperlink{namespacekblib_acdb4473ef9196a18a0e37e05171729f0}{return\+\_\+assert\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__callable}{is\+\_\+callable}}$<$ Predicate, typename Container\+::value\+\_\+type\+::value\+\_\+type $>$\+::value, Container $>$
\begin{DoxyCompactList}\small\item\em Split a string on all condensed delimiters. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container  = std\+::vector$<$std\+::string$>$, typename String $>$ }\\auto \mbox{\hyperlink{namespacekblib_a288c8338128b43f633100be6f592e3ec}{split\+\_\+tokens}} (const String \&in) -\/$>$ Container
\begin{DoxyCompactList}\small\item\em Split a string on all instances of whitespace. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container  = std\+::vector$<$std\+::string$>$, typename String $>$ }\\auto \mbox{\hyperlink{namespacekblib_a34cba269622ee9886da3de3d723e1e3e}{split\+\_\+tokens}} (const String \&in, typename Container\+::value\+\_\+type\+::value\+\_\+type delim) -\/$>$ Container
\begin{DoxyCompactList}\small\item\em Split a string on all instances of a delimiter. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container  = std\+::vector$<$std\+::string$>$, typename String $>$ }\\auto \mbox{\hyperlink{namespacekblib_a47a95399524c0bca50361169128f9db9}{kbsplit2}} (const String \&in, char delim=\textquotesingle{} \textquotesingle{}) -\/$>$ Container
\item 
{\footnotesize template$<$typename Container  = std\+::vector$<$std\+::string$>$, typename String $>$ }\\auto \mbox{\hyperlink{namespacekblib_aae5eb815715bae10bdcc0ea9475cfb7c}{split\+\_\+dsv}} (const String \&str, char delim) -\/$>$ Container
\begin{DoxyCompactList}\small\item\em Split a string on all instances of delim. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container  = std\+::vector$<$std\+::string$>$, typename String , typename Predicate $>$ }\\auto \mbox{\hyperlink{namespacekblib_acbe121310e870b5e6281ce2a300c47f6}{split\+\_\+dsv}} (const String \&str, Predicate delim) -\/$>$ \mbox{\hyperlink{namespacekblib_acdb4473ef9196a18a0e37e05171729f0}{return\+\_\+assert\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1is__callable}{is\+\_\+callable}}$<$ Predicate, typename Container\+::value\+\_\+type\+::value\+\_\+type $>$\+::value, Container $>$
\begin{DoxyCompactList}\small\item\em Split a string on all instances of delim. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename string $>$ }\\auto \mbox{\hyperlink{namespacekblib_a91ab01237b8d6ef57f55a74300815c6e}{reverse\+\_\+str}} (string val) -\/$>$ string
\begin{DoxyCompactList}\small\item\em Reverses all the elements of its input. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename string $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a4bd8237188786dec83b4d7f5e6d05139}{tolower}} (string str) -\/$>$ string
\begin{DoxyCompactList}\small\item\em Folds all characters in a string using the default execution character set to lowercase. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename string $>$ }\\auto \mbox{\hyperlink{namespacekblib_ac1094a7e020c9186d0e3a608f9ff70f4}{toupper}} (string str) -\/$>$ string
\begin{DoxyCompactList}\small\item\em Folds all characters in a string using the default execution character set to uppercase. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename string $>$ }\\auto \mbox{\hyperlink{namespacekblib_a5666bcdc72292d36178a604c518c1ba8}{repeat}} (string val, std\+::size\+\_\+t count) -\/$>$ string
\begin{DoxyCompactList}\small\item\em Construct a string consisting of count copies of val concatenated together. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{namespacekblib_ae53be72bf8b3efff5d7a930ea6886cc0}{repeat}} (char val, std\+::size\+\_\+t count) -\/$>$ std\+::string
\begin{DoxyCompactList}\small\item\em Construct a string consisting of count copies of val. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{namespacekblib_a7743f2e2f0dd3bd1542fa49368907206}{ends\+\_\+with}} (std\+::string\+\_\+view haystack, std\+::string\+\_\+view needle) -\/$>$ bool
\begin{DoxyCompactList}\small\item\em Checks if a given string ends with a particular string. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{namespacekblib_a19adf8b75cebbc58c92f2ade7a3f2e87}{ends\+\_\+with}} (std\+::string\+\_\+view haystack, char needle) -\/$>$ bool
\begin{DoxyCompactList}\small\item\em Checks if a given string ends with a particular string. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{namespacekblib_a43d878711202236ccdd3100d878e27f5}{starts\+\_\+with}} (std\+::string\+\_\+view haystack, std\+::string\+\_\+view needle) -\/$>$ bool
\begin{DoxyCompactList}\small\item\em Checks if a given string starts with a particular string. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{namespacekblib_a07cac288890ce291ba1fe97874feba41}{starts\+\_\+with}} (std\+::string\+\_\+view haystack, char needle) -\/$>$ bool
\begin{DoxyCompactList}\small\item\em Checks if a given string starts with a particular string. \end{DoxyCompactList}\item 
{\footnotesize template$<$int trim, typename T , int N, typename Indices  = std\+::make\+\_\+integer\+\_\+sequence$<$int, N -\/ trim$>$$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a07019c995e0508ce266be47f94f3a882}{trim\+\_\+array}} (const T(\&arr)\mbox{[}N\mbox{]}) -\/$>$ std\+::array$<$ T, N -\/ trim $>$
\begin{DoxyCompactList}\small\item\em Truncates the last trim elements from an array. \end{DoxyCompactList}\item 
{\footnotesize template$<$int N, typename Indices  = std\+::make\+\_\+integer\+\_\+sequence$<$int, N -\/ 1$>$$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a9bfc51ee4b1118cf5effed3d4ae9dfed}{remove\+\_\+null\+\_\+terminator}} (const char(\&arr)\mbox{[}N\mbox{]}) -\/$>$ std\+::array$<$ char, N -\/ 1 $>$
\begin{DoxyCompactList}\small\item\em Creates an array of only the meaningful characters in a string literal, and not the null terminator. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T , typename F $>$ }\\auto \mbox{\hyperlink{namespacekblib_ae5b7fdf2bbba96527afa217fad0dea1f}{byte\+\_\+cast}} (F v) noexcept -\/$>$ T
\begin{DoxyCompactList}\small\item\em Creates a T with the same object representation as the given F. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename C , typename std\+::enable\+\_\+if$<$ \mbox{\hyperlink{namespacekblib_ad122336bc521ea4a22d7759b529fb561}{has\+\_\+reserve\+\_\+v}}$<$ C $>$, int $>$\+::type  = 0$>$ }\\auto \mbox{\hyperlink{namespacekblib_a7035cf97e9bcba5add3b1462ac01a0ed}{try\+\_\+reserve}} (C \&c, std\+::size\+\_\+t s) noexcept(noexcept(c.\+reserve(s))) -\/$>$ void
\begin{DoxyCompactList}\small\item\em Attempt to reserve capacity in a container. No-\/op if unsupported. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename To , typename... Ts$>$ }\\auto \mbox{\hyperlink{namespacekblib_a5f8aab063bc452b4a3c659a795bcd877}{coerce}} (const std\+::variant$<$ Ts... $>$ \&v) -\/$>$ To
\begin{DoxyCompactList}\small\item\em Lexically converts the value of v (no matter its type) to type To. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename To , typename... Ts$>$ }\\auto \mbox{\hyperlink{namespacekblib_a29192473be72ea5a4451ad3c16c160a6}{static\+\_\+coerce}} (const std\+::variant$<$ Ts... $>$ \&v) -\/$>$ To
\begin{DoxyCompactList}\small\item\em static\+\_\+casts the value of v (no matter its type) to type To. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename To , typename... Ts$>$ }\\auto \mbox{\hyperlink{namespacekblib_ae56f85ba1bf0712f3d28db56c231976f}{lexical\+\_\+coerce}} (const std\+::variant$<$ Ts... $>$ \&v) -\/$>$ To
\begin{DoxyCompactList}\small\item\em Lexically converts the value of v (no matter its type) to type To. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename... Ts$>$ }\\\mbox{\hyperlink{namespacekblib_a8df9aed23f5d515ec52f68275e43014b}{visitor}} (Ts...) -\/$>$ \mbox{\hyperlink{structkblib_1_1visitor}{visitor}}$<$ Ts... $>$
\item 
{\footnotesize template$<$char... Cs$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_1_1literals_acebb1a7951fb28c5fa6648429b883edc}{operator\char`\"{}\char`\"{}\+\_\+vi}} ()
\item 
{\footnotesize template$<$typename Variant , typename... Fs$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a7600c651ddd193dfeb5d294732ab1e69}{visit\+\_\+indexed}} (Variant \&\&variant, Fs \&\&... fs) -\/$>$ decltype(auto)
\begin{DoxyCompactList}\small\item\em Visit a variant, but pass the index (as an integral\+\_\+constant) to the visitor. This allows for a visitor of a variant with duplicated types to maintain index information. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename To , typename From $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a8f75832450fffa41112f9035e75c405a}{variant\+\_\+cast}} (From \&\&v) -\/$>$ To
\begin{DoxyCompactList}\small\item\em Promotes an input variant to a super-\/variant. That is, one which provides at least the same set of types. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename V , typename F , typename... Fs$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_af1f6dd52b7ce14276ab5509700c6acf1}{visit}} (V \&\&v, F \&\&f, Fs \&\&... fs) -\/$>$ decltype(auto)
\begin{DoxyCompactList}\small\item\em Wraps std\+::visit to provide an interface taking one variant and any number of functors providing an overload set. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename V , typename F , typename... Fs$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_ac780c4d9780fb9b46be0669d377e1e9b}{visit2}} (V \&\&v, F \&\&f, Fs \&\&... fs) -\/$>$ decltype(auto)
\item 
{\footnotesize template$<$typename V , typename F , typename... Fs$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_a76752fc2ac3634b95ba226b1324dc0b9}{visit2\+\_\+nop}} (V \&\&v, F \&\&f, Fs \&\&... fs) -\/$>$ void
\item 
{\footnotesize template$<$typename V $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_aac6dcc14f17288a30b9a439fbd9ed3c2}{visit}} (V \&v) -\/$>$ auto
\begin{DoxyCompactList}\small\item\em Two-\/step visiting interface. Takes a variant, and returns an object which can be called with any number of callable arguments, builds an overload set from them, and visits the variant. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename Int $>$ }\\constexpr int \mbox{\hyperlink{namespacekblib_aa29cd1999efff7dd9b8d9aa8ab468109}{bits\+\_\+of}} = std\+::numeric\+\_\+limits$<$Int$>$\+::digits
\item 
constexpr struct \mbox{\hyperlink{structkblib_1_1build__end__t}{kblib\+::build\+\_\+end\+\_\+t}} \mbox{\hyperlink{namespacekblib_aad99c3a2af651595f17e2c95c2c521d4}{build\+\_\+end}}
\item 
\begin{tabbing}
xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
struct \{\\
\} \mbox{\hyperlink{namespacekblib_a4aadfdece3872e99551aa812ac3bac27}{swap}}\\

\end{tabbing}\item 
{\footnotesize template$<$typename T $>$ }\\constexpr bool \mbox{\hyperlink{namespacekblib_a927171c113d5559da2f0f2245ed5e9da}{value\+\_\+detected\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1value__detected}{value\+\_\+detected}}$<$T$>$\+::value
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr bool \mbox{\hyperlink{namespacekblib_aadf3de1384a8cce5b631b28711b4a47c}{key\+\_\+detected\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1key__detected}{key\+\_\+detected}}$<$T$>$\+::value
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr bool \mbox{\hyperlink{namespacekblib_a13ab67cd7841362d9e8da411066ca974}{mapped\+\_\+detected\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1mapped__detected}{mapped\+\_\+detected}}$<$T$>$\+::value
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr bool \mbox{\hyperlink{namespacekblib_adbb2b4e744a5f165142f9a49cf5fa8b4}{hash\+\_\+detected\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1hash__detected}{hash\+\_\+detected}}$<$T$>$\+::value
\item 
constexpr struct \mbox{\hyperlink{structkblib_1_1in__place__agg__t}{kblib\+::in\+\_\+place\+\_\+agg\+\_\+t}} \mbox{\hyperlink{namespacekblib_af44abb883b069d84630176b4b8cd26f6}{in\+\_\+place\+\_\+agg}}
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr int \mbox{\hyperlink{namespacekblib_a87295f2bf3c1f64ed3b04f4664fa2a78}{padding\+\_\+bits\+\_\+v}}
\begin{DoxyCompactList}\small\item\em Get the number of padding bits in an integral type. \end{DoxyCompactList}\item 
template$<$$>$ constexpr int \mbox{\hyperlink{namespacekblib_a8265ea9f77ece8f281a9d44f9df2b295}{padding\+\_\+bits\+\_\+v$<$ void $>$}} = 0
\item 
{\footnotesize template$<$typename Key $>$ }\\\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} \mbox{\hyperlink{namespacekblib_a088e976f0cd633372839a9f4404f3c15}{is\+\_\+hashable\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1is__hashable}{is\+\_\+hashable}}$<$Key$>$\+::value
\item 
{\footnotesize template$<$typename T $>$ }\\\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} \mbox{\hyperlink{namespacekblib_a16db4408c7a9d67eb38141aee1588ebd}{is\+\_\+trivially\+\_\+hashable\+\_\+v}}
\item 
{\footnotesize template$<$bool A, bool B$>$ }\\constexpr bool \mbox{\hyperlink{namespacekblib_a1bbf36db8dd7568fc671fe6972275dff}{implies\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1implies}{implies}}$<$A, B$>$\+::value
\item 
{\footnotesize template$<$bool... args$>$ }\\constexpr bool \mbox{\hyperlink{namespacekblib_a8adff72b30cc79a9a17d79aecb1796b3}{conjunction\+\_\+v}} = (args and ...)
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr std\+::size\+\_\+t \mbox{\hyperlink{namespacekblib_ac35f43d37c7552bbbbe7ff67cff88bc8}{state\+\_\+size\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1state__size}{state\+\_\+size}}$<$T$>$\+::value
\item 
{\footnotesize template$<$typename T , typename  = void$>$ }\\constexpr std\+::size\+\_\+t \mbox{\hyperlink{namespacekblib_acfb1b995fef3970d7ece0836d0b8b232}{seed\+\_\+discard\+\_\+v}} = 0
\item 
{\footnotesize template$<$typename... Ts$>$ }\\constexpr bool \mbox{\hyperlink{namespacekblib_aba974d3674b8fe6b1cf75e16a66322f0}{any\+\_\+void}} = (std\+::is\+\_\+void\+\_\+v$<$Ts$>$ or ...)
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr bool \mbox{\hyperlink{namespacekblib_ab58211612f119bcfedd22ca4ef9999de}{is\+\_\+radix\+\_\+sortable\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1is__radix__sortable}{is\+\_\+radix\+\_\+sortable}}$<$T$>$\+::value
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr bool \mbox{\hyperlink{namespacekblib_ad80f4ade2acc180c9caf217300f2ffa5}{is\+\_\+byte\+\_\+v}} = false
\item 
constexpr struct \mbox{\hyperlink{structkblib_1_1nums_1_1max__t}{kblib\+::nums\+::max\+\_\+t}} \mbox{\hyperlink{namespacekblib_1_1nums_a64067ecc4167ce1cfe32860ef5c1dc47}{max}}
\item 
constexpr struct \mbox{\hyperlink{structkblib_1_1nums_1_1min__t}{kblib\+::nums\+::min\+\_\+t}} \mbox{\hyperlink{namespacekblib_1_1nums_a24555c4b07301e176bf192adf4e80499}{min}}
\item 
{\footnotesize template$<$typename C $>$ }\\constexpr bool \mbox{\hyperlink{namespacekblib_a7161c2976d0e6426ae3a6fdd0d40bc54}{is\+\_\+character\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1is__character}{is\+\_\+character}}$<$C$>$\+::value
\begin{DoxyCompactList}\small\item\em Equivalent to is\+\_\+character$<$\+C$>$\+::value. \end{DoxyCompactList}\item 
constexpr \mbox{\hyperlink{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694}{endian}} \mbox{\hyperlink{namespacekblib_a3dae0627cf4328fdec529095574560c4}{system\+\_\+endian}} = \mbox{\hyperlink{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694aad921d60486366258809553a3db49a4a}{endian\+::unknown}}
\item 
constexpr \mbox{\hyperlink{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694}{endian}} \mbox{\hyperlink{namespacekblib_adfb43b754fe059940c0e827f48f97e41}{hash\+\_\+order}} = \mbox{\hyperlink{namespacekblib_1_1detail_aa27cb7ef8337a7d338355c3a93e1431b}{detail\+::get\+\_\+hash\+\_\+order}}()
\item 
{\footnotesize template$<$typename... Ts$>$ }\\\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} \mbox{\hyperlink{namespacekblib_a462a4f145e951b0820c78d27c60d7389}{contains\+\_\+type\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1contains__type}{contains\+\_\+type}}$<$Ts...$>$\+::value
\item 
{\footnotesize template$<$typename... Ts$>$ }\\\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} \mbox{\hyperlink{namespacekblib_a7bf6ffaec25cb2430dcd6f43bd285ca4}{contains\+\_\+types\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1contains__types}{contains\+\_\+types}}$<$Ts...$>$\+::value
\item 
{\footnotesize template$<$typename C $>$ }\\\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}} = decltype(\mbox{\hyperlink{namespacekblib_1_1detail_ac5dbc22e701244360a7107a086f67d3c}{detail\+::calc\+\_\+resizable}}$<$C$>$(0))\+::value
\item 
{\footnotesize template$<$typename C , typename  = void$>$ }\\\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} \mbox{\hyperlink{namespacekblib_ad122336bc521ea4a22d7759b529fb561}{has\+\_\+reserve\+\_\+v}} = false
\item 
{\footnotesize template$<$typename C , typename  = void$>$ }\\\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} \mbox{\hyperlink{namespacekblib_acec974f6a75e6884147ef326bbd78d35}{is\+\_\+contiguous\+\_\+v}} = false
\begin{DoxyCompactList}\small\item\em Type trait to determine if a container is contiguous. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T $>$ }\\\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} \mbox{\hyperlink{namespacekblib_a38ad8c5b263ac766baf7ec36fe3b4a10}{is\+\_\+input\+\_\+iterator\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$T$>$\+::value
\item 
{\footnotesize template$<$typename T $>$ }\\\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} \mbox{\hyperlink{namespacekblib_a8bde12b9b9ad4463f4cc065fd2df6f99}{is\+\_\+forward\+\_\+iterator\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1is__forward__iterator}{is\+\_\+forward\+\_\+iterator}}$<$T$>$\+::value
\item 
{\footnotesize template$<$typename T $>$ }\\\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} \mbox{\hyperlink{namespacekblib_ab4a90d7f7bacba9a52aea362f42af35f}{is\+\_\+bidirectional\+\_\+iterator\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1is__bidirectional__iterator}{is\+\_\+bidirectional\+\_\+iterator}}$<$T$>$\+::value
\item 
{\footnotesize template$<$typename T $>$ }\\\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} \mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1is__random__access__iterator}{is\+\_\+random\+\_\+access\+\_\+iterator}}$<$T$>$\+::value
\item 
{\footnotesize template$<$typename T $>$ }\\\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} \mbox{\hyperlink{namespacekblib_a47c378eaff6fdce8aa2eaafe18eb1356}{is\+\_\+iterable\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}}$<$T$>$\+::value
\item 
{\footnotesize template$<$typename T $>$ }\\\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} \mbox{\hyperlink{namespacekblib_a77a4b828d16a122e5fd65379109dc036}{is\+\_\+iterator\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1is__iterator}{is\+\_\+iterator}}$<$T$>$\+::value
\item 
{\footnotesize template$<$typename T $>$ }\\\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} \mbox{\hyperlink{namespacekblib_a625498ea158a89d47216df312843feac}{is\+\_\+reference\+\_\+v}} = std\+::is\+\_\+reference$<$T$>$\+::value
\begin{DoxyCompactList}\small\item\em Abbreviated name for std\+::is\+\_\+reference$<$\+T$>$\+::value for C++14. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename CharT  = char$>$ }\\\mbox{\hyperlink{tdecl_8h_a35b356d58929dd3ae764e8291838f5be}{KBLIB\+\_\+\+CONSTANT}} auto \mbox{\hyperlink{namespacekblib_af23ee1a0fd16161a62159681c8cf6e16}{eof}} = std\+::char\+\_\+traits$<$CharT$>$\+::eof()
\begin{DoxyCompactList}\small\item\em Names the EOF value for the given character type in std\+::char\+\_\+traits. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T $>$ }\\\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} \mbox{\hyperlink{namespacekblib_aa9f553215f3b18343f6b298506426ce2}{is\+\_\+aliasing\+\_\+type\+\_\+v}} = \mbox{\hyperlink{structkblib_1_1is__aliasing__type}{is\+\_\+aliasing\+\_\+type}}$<$T$>$\+::value
\item 
{\footnotesize template$<$typename T , typename  = void$>$ }\\constexpr bool \mbox{\hyperlink{namespacekblib_a6b22bbd4d3c7abe1c7ec7be007c11028}{is\+\_\+variant\+\_\+like\+\_\+v}} = false
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The main namespace in which all entities from kblib are defined. 

\doxysubsection{Typedef Documentation}
\mbox{\Hypertarget{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}\label{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}} 
\index{kblib@{kblib}!alias@{alias}}
\index{alias@{alias}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{alias}{alias}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
using \mbox{\hyperlink{namespacekblib_a8fe1791c4dfe674d145963ab5b3121ae}{kblib\+::alias}} = typedef T}



A simple identity alias for simplifying some compound type declarations, such as function pointers. 



Definition at line \mbox{\hyperlink{traits_8h_source_l00155}{155}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_aab6846d277428f1e4b61ced2ed64dd0b}\label{namespacekblib_aab6846d277428f1e4b61ced2ed64dd0b}} 
\index{kblib@{kblib}!bool\_constant@{bool\_constant}}
\index{bool\_constant@{bool\_constant}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{bool\_constant}{bool\_constant}}
{\footnotesize\ttfamily template$<$bool v$>$ \\
using \mbox{\hyperlink{namespacekblib_aab6846d277428f1e4b61ced2ed64dd0b}{kblib\+::bool\+\_\+constant}} = typedef std\+::integral\+\_\+constant$<$bool, v$>$}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00064}{64}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac0d673e8dfabd5fe1fe4d89a08be7019}\label{namespacekblib_ac0d673e8dfabd5fe1fe4d89a08be7019}} 
\index{kblib@{kblib}!class\_of\_t@{class\_of\_t}}
\index{class\_of\_t@{class\_of\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{class\_of\_t}{class\_of\_t}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
using \mbox{\hyperlink{namespacekblib_ac0d673e8dfabd5fe1fe4d89a08be7019}{kblib\+::class\+\_\+of\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_1_1class__of}{class\+\_\+of}}$<$T$>$\+::type}



Definition at line \mbox{\hyperlink{traits_8h_source_l00279}{279}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_af973fdd9c2dddf6db3744ae83902fc72}\label{namespacekblib_af973fdd9c2dddf6db3744ae83902fc72}} 
\index{kblib@{kblib}!copy\_const\_t@{copy\_const\_t}}
\index{copy\_const\_t@{copy\_const\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{copy\_const\_t}{copy\_const\_t}}
{\footnotesize\ttfamily template$<$typename C , typename V $>$ \\
using \mbox{\hyperlink{namespacekblib_af973fdd9c2dddf6db3744ae83902fc72}{kblib\+::copy\+\_\+const\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_1_1copy__const}{copy\+\_\+const}}$<$C, V$>$\+::type}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00871}{871}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a9dcf2233bc360ff26fbbf82d98cdc64d}\label{namespacekblib_a9dcf2233bc360ff26fbbf82d98cdc64d}} 
\index{kblib@{kblib}!decay\_t@{decay\_t}}
\index{decay\_t@{decay\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{decay\_t}{decay\_t}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
using \mbox{\hyperlink{namespacekblib_a9dcf2233bc360ff26fbbf82d98cdc64d}{kblib\+::decay\+\_\+t}} = typedef typename std\+::decay$<$T$>$\+::type}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00057}{57}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a0ec1db9166c1c7928e764aa17e4f01e6}\label{namespacekblib_a0ec1db9166c1c7928e764aa17e4f01e6}} 
\index{kblib@{kblib}!default\_extractor\_t@{default\_extractor\_t}}
\index{default\_extractor\_t@{default\_extractor\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{default\_extractor\_t}{default\_extractor\_t}}
{\footnotesize\ttfamily template$<$typename Container $>$ \\
using \mbox{\hyperlink{namespacekblib_a0ec1db9166c1c7928e764aa17e4f01e6}{kblib\+::default\+\_\+extractor\+\_\+t}} = typedef typename std\+::conditional$<$ \mbox{\hyperlink{structkblib_1_1extractor__policy__for}{extractor\+\_\+policy\+\_\+for}}$<$Container$>$\+::value == \mbox{\hyperlink{namespacekblib_a54f01b64a070a7f3e916ec21e1d0145fa298bbb8f070170fc998ccac67856211b}{extractor\+\_\+policy\+::random\+\_\+access}}, \mbox{\hyperlink{structkblib_1_1indexer__extractor}{indexer\+\_\+extractor}}$<$Container$>$, \mbox{\hyperlink{structkblib_1_1iterator__extractor}{iterator\+\_\+extractor}}$<$Container$>$ $>$\+::type}



Definition at line \mbox{\hyperlink{trie_8h_source_l00086}{86}} of file \mbox{\hyperlink{trie_8h_source}{trie.\+h}}.

\mbox{\Hypertarget{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}\label{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}} 
\index{kblib@{kblib}!enable\_if\_t@{enable\_if\_t}}
\index{enable\_if\_t@{enable\_if\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{enable\_if\_t}{enable\_if\_t}}
{\footnotesize\ttfamily template$<$bool B, typename T  = void$>$ \\
using \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{kblib\+::enable\+\_\+if\+\_\+t}} = typedef typename std\+::enable\+\_\+if$<$B, T$>$\+::type}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00054}{54}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a681dc40a3f4186fdbc876b705fd65f99}\label{namespacekblib_a681dc40a3f4186fdbc876b705fd65f99}} 
\index{kblib@{kblib}!FNV32\_hash@{FNV32\_hash}}
\index{FNV32\_hash@{FNV32\_hash}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{FNV32\_hash}{FNV32\_hash}}
{\footnotesize\ttfamily template$<$typename Key $>$ \\
using \mbox{\hyperlink{namespacekblib_a681dc40a3f4186fdbc876b705fd65f99}{kblib\+::\+FNV32\+\_\+hash}} = typedef \mbox{\hyperlink{structkblib_1_1_f_n_v__hash}{FNV\+\_\+hash}}$<$Key, std\+::uint32\+\_\+t$>$}



Definition at line \mbox{\hyperlink{hash_8h_source_l00353}{353}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_a73fd7f69e7f6233d2c480a16e86b03a0}\label{namespacekblib_a73fd7f69e7f6233d2c480a16e86b03a0}} 
\index{kblib@{kblib}!hash\_detected\_t@{hash\_detected\_t}}
\index{hash\_detected\_t@{hash\_detected\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{hash\_detected\_t}{hash\_detected\_t}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
using \mbox{\hyperlink{namespacekblib_a73fd7f69e7f6233d2c480a16e86b03a0}{kblib\+::hash\+\_\+detected\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_1_1hash__detected}{hash\+\_\+detected}}$<$T$>$\+::type}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00923}{923}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae9d0249375b4e261279715b4e50e9bb3}\label{namespacekblib_ae9d0249375b4e261279715b4e50e9bb3}} 
\index{kblib@{kblib}!hash\_map@{hash\_map}}
\index{hash\_map@{hash\_map}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{hash\_map}{hash\_map}}
{\footnotesize\ttfamily template$<$typename Key , typename Value $>$ \\
using \mbox{\hyperlink{namespacekblib_ae9d0249375b4e261279715b4e50e9bb3}{kblib\+::hash\+\_\+map}} = typedef std\+::unordered\+\_\+map$<$Key, Value, \mbox{\hyperlink{structkblib_1_1_f_n_v__hash}{FNV\+\_\+hash}}$<$$>$, std\+::equal\+\_\+to$<$$>$ $>$}



Definition at line \mbox{\hyperlink{hash_8h_source_l00764}{764}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_a238473bf3e5a7dcc451d6ff80fd883e0}\label{namespacekblib_a238473bf3e5a7dcc451d6ff80fd883e0}} 
\index{kblib@{kblib}!hash\_multimap@{hash\_multimap}}
\index{hash\_multimap@{hash\_multimap}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{hash\_multimap}{hash\_multimap}}
{\footnotesize\ttfamily template$<$typename Key , typename Value $>$ \\
using \mbox{\hyperlink{namespacekblib_a238473bf3e5a7dcc451d6ff80fd883e0}{kblib\+::hash\+\_\+multimap}} = typedef std\+::unordered\+\_\+multimap$<$Key, Value, \mbox{\hyperlink{structkblib_1_1_f_n_v__hash}{FNV\+\_\+hash}}$<$$>$, std\+::equal\+\_\+to$<$$>$ $>$}



Definition at line \mbox{\hyperlink{hash_8h_source_l00766}{766}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_aa5f6657aa0507d58dd3eab4b0b9fc446}\label{namespacekblib_aa5f6657aa0507d58dd3eab4b0b9fc446}} 
\index{kblib@{kblib}!hash\_multiset@{hash\_multiset}}
\index{hash\_multiset@{hash\_multiset}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{hash\_multiset}{hash\_multiset}}
{\footnotesize\ttfamily template$<$typename T , typename Hash\+Int $>$ \\
using \mbox{\hyperlink{namespacekblib_aa5f6657aa0507d58dd3eab4b0b9fc446}{kblib\+::hash\+\_\+multiset}} = typedef std\+::unordered\+\_\+set$<$T, \mbox{\hyperlink{structkblib_1_1_f_n_v__hash}{FNV\+\_\+hash}}$<$$>$, std\+::equal\+\_\+to$<$$>$ $>$}



Definition at line \mbox{\hyperlink{hash_8h_source_l00771}{771}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_aba444e91f374258eb8f1594e19d54886}\label{namespacekblib_aba444e91f374258eb8f1594e19d54886}} 
\index{kblib@{kblib}!hash\_set@{hash\_set}}
\index{hash\_set@{hash\_set}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{hash\_set}{hash\_set}}
{\footnotesize\ttfamily template$<$typename T , typename Hash\+Int $>$ \\
using \mbox{\hyperlink{namespacekblib_aba444e91f374258eb8f1594e19d54886}{kblib\+::hash\+\_\+set}} = typedef std\+::unordered\+\_\+set$<$T, \mbox{\hyperlink{structkblib_1_1_f_n_v__hash}{FNV\+\_\+hash}}$<$$>$, std\+::equal\+\_\+to$<$$>$ $>$}



Definition at line \mbox{\hyperlink{hash_8h_source_l00769}{769}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_a3cec35675700d7e15c9139e0497768e6}\label{namespacekblib_a3cec35675700d7e15c9139e0497768e6}} 
\index{kblib@{kblib}!ignore\_t@{ignore\_t}}
\index{ignore\_t@{ignore\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{ignore\_t}{ignore\_t}}
{\footnotesize\ttfamily template$<$typename U , typename T $>$ \\
using \mbox{\hyperlink{namespacekblib_a3cec35675700d7e15c9139e0497768e6}{kblib\+::ignore\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_1_1ignore}{ignore}}$<$U, T$>$\+::type}



An alias for \mbox{\hyperlink{structkblib_1_1ignore_aa8afaf19eb6bad07fa899e99a05e845a}{ignore$<$\+U, T$>$\+::type}}. 



Definition at line \mbox{\hyperlink{traits_8h_source_l00169}{169}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_a01bce53d45632d6f32fe5af269533805}\label{namespacekblib_a01bce53d45632d6f32fe5af269533805}} 
\index{kblib@{kblib}!int\_smallest@{int\_smallest}}
\index{int\_smallest@{int\_smallest}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{int\_smallest}{int\_smallest}}
{\footnotesize\ttfamily template$<$std\+::uintmax\+\_\+t I$>$ \\
using \mbox{\hyperlink{namespacekblib_a01bce53d45632d6f32fe5af269533805}{kblib\+::int\+\_\+smallest}} = typedef typename \mbox{\hyperlink{structkblib_1_1first__bigger__than}{first\+\_\+bigger\+\_\+than}}$<$1 + (\mbox{\hyperlink{namespacekblib_a5633a966716e66c8230d039c7615e393}{filg2}}(I) + 1) / CHAR\+\_\+\+BIT, signed char, signed short, signed int, signed long, signed long long, std\+::uintmax\+\_\+t$>$\+::type}



Definition at line \mbox{\hyperlink{simple_8h_source_l00192}{192}} of file \mbox{\hyperlink{simple_8h_source}{simple.\+h}}.

\mbox{\Hypertarget{namespacekblib_a54235123af1b79489fb0484fc64318ff}\label{namespacekblib_a54235123af1b79489fb0484fc64318ff}} 
\index{kblib@{kblib}!int\_smallest\_t@{int\_smallest\_t}}
\index{int\_smallest\_t@{int\_smallest\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{int\_smallest\_t}{int\_smallest\_t}}
{\footnotesize\ttfamily template$<$std\+::uintmax\+\_\+t I$>$ \\
using \mbox{\hyperlink{namespacekblib_a54235123af1b79489fb0484fc64318ff}{kblib\+::int\+\_\+smallest\+\_\+t}} = typedef typename \mbox{\hyperlink{namespacekblib_a01bce53d45632d6f32fe5af269533805}{int\+\_\+smallest}}$<$I$>$\+::type}



Definition at line \mbox{\hyperlink{simple_8h_source_l00201}{201}} of file \mbox{\hyperlink{simple_8h_source}{simple.\+h}}.

\mbox{\Hypertarget{namespacekblib_a50228da6d1f395258a03db48257305d0}\label{namespacekblib_a50228da6d1f395258a03db48257305d0}} 
\index{kblib@{kblib}!iterator\_type\_for\_t@{iterator\_type\_for\_t}}
\index{iterator\_type\_for\_t@{iterator\_type\_for\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{iterator\_type\_for\_t}{iterator\_type\_for\_t}}
{\footnotesize\ttfamily template$<$typename Range $>$ \\
using \mbox{\hyperlink{namespacekblib_a50228da6d1f395258a03db48257305d0}{kblib\+::iterator\+\_\+type\+\_\+for\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_1_1iterator__type__for}{iterator\+\_\+type\+\_\+for}}$<$Range$>$\+::type}



Definition at line \mbox{\hyperlink{traits_8h_source_l00397}{397}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac84fd1f7586e640147679a7c24a746d8}\label{namespacekblib_ac84fd1f7586e640147679a7c24a746d8}} 
\index{kblib@{kblib}!key\_detected\_t@{key\_detected\_t}}
\index{key\_detected\_t@{key\_detected\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{key\_detected\_t}{key\_detected\_t}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
using \mbox{\hyperlink{namespacekblib_ac84fd1f7586e640147679a7c24a746d8}{kblib\+::key\+\_\+detected\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_1_1key__detected}{key\+\_\+detected}}$<$T$>$\+::type}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00897}{897}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a08c333aaa30dec55fb9d3e7d616093bd}\label{namespacekblib_a08c333aaa30dec55fb9d3e7d616093bd}} 
\index{kblib@{kblib}!key\_type\_setlike\_t@{key\_type\_setlike\_t}}
\index{key\_type\_setlike\_t@{key\_type\_setlike\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{key\_type\_setlike\_t}{key\_type\_setlike\_t}}
{\footnotesize\ttfamily template$<$typename Container $>$ \\
using \mbox{\hyperlink{namespacekblib_a08c333aaa30dec55fb9d3e7d616093bd}{kblib\+::key\+\_\+type\+\_\+setlike\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_1_1key__type__setlike}{key\+\_\+type\+\_\+setlike}}$<$Container$>$\+::type}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00952}{952}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_aea08f7e56313388f4681f002a13793ba}\label{namespacekblib_aea08f7e56313388f4681f002a13793ba}} 
\index{kblib@{kblib}!mapped\_detected\_t@{mapped\_detected\_t}}
\index{mapped\_detected\_t@{mapped\_detected\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{mapped\_detected\_t}{mapped\_detected\_t}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
using \mbox{\hyperlink{namespacekblib_aea08f7e56313388f4681f002a13793ba}{kblib\+::mapped\+\_\+detected\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_1_1mapped__detected}{mapped\+\_\+detected}}$<$T$>$\+::type}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00910}{910}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a8944b438ec39c111c64a1e8501fd7828}\label{namespacekblib_a8944b438ec39c111c64a1e8501fd7828}} 
\index{kblib@{kblib}!member\_of\_t@{member\_of\_t}}
\index{member\_of\_t@{member\_of\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{member\_of\_t}{member\_of\_t}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
using \mbox{\hyperlink{namespacekblib_a8944b438ec39c111c64a1e8501fd7828}{kblib\+::member\+\_\+of\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_1_1member__of}{member\+\_\+of}}$<$T$>$\+::type}



Definition at line \mbox{\hyperlink{traits_8h_source_l00297}{297}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_af9d6c610a6e855aa1eba054060166247}\label{namespacekblib_af9d6c610a6e855aa1eba054060166247}} 
\index{kblib@{kblib}!meta\_type\_t@{meta\_type\_t}}
\index{meta\_type\_t@{meta\_type\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{meta\_type\_t}{meta\_type\_t}}
{\footnotesize\ttfamily template$<$typename... Ts$>$ \\
using \mbox{\hyperlink{namespacekblib_af9d6c610a6e855aa1eba054060166247}{kblib\+::meta\+\_\+type\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_1_1meta__type}{meta\+\_\+type}}$<$Ts...$>$\+::type}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00505}{505}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a5d358e0474506e99331fde45ce81f78f}\label{namespacekblib_a5d358e0474506e99331fde45ce81f78f}} 
\index{kblib@{kblib}!metafunction\_value\_t@{metafunction\_value\_t}}
\index{metafunction\_value\_t@{metafunction\_value\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{metafunction\_value\_t}{metafunction\_value\_t}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
using \mbox{\hyperlink{namespacekblib_a5d358e0474506e99331fde45ce81f78f}{kblib\+::metafunction\+\_\+value\+\_\+t}} = typedef std\+::integral\+\_\+constant$<$decltype(T\+::value), T\+::value$>$}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00529}{529}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a5695499e50b8ae6a0308bd845774728f}\label{namespacekblib_a5695499e50b8ae6a0308bd845774728f}} 
\index{kblib@{kblib}!move\_only\_traits@{move\_only\_traits}}
\index{move\_only\_traits@{move\_only\_traits}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{move\_only\_traits}{move\_only\_traits}}
{\footnotesize\ttfamily template$<$typename Obj $>$ \\
using \mbox{\hyperlink{namespacekblib_a5695499e50b8ae6a0308bd845774728f}{kblib\+::move\+\_\+only\+\_\+traits}} = typedef \mbox{\hyperlink{structkblib_1_1poly__obj__traits}{poly\+\_\+obj\+\_\+traits}}$<$Obj, \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa3734a903022249b3010be1897042568e}{construct\+\_\+type\+::move}}$>$}



Definition at line \mbox{\hyperlink{poly__obj_8h_source_l00452}{452}} of file \mbox{\hyperlink{poly__obj_8h_source}{poly\+\_\+obj.\+h}}.

\mbox{\Hypertarget{namespacekblib_a1f329c91b6941e2cc765d59100b34749}\label{namespacekblib_a1f329c91b6941e2cc765d59100b34749}} 
\index{kblib@{kblib}!no\_move\_traits@{no\_move\_traits}}
\index{no\_move\_traits@{no\_move\_traits}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{no\_move\_traits}{no\_move\_traits}}
{\footnotesize\ttfamily template$<$typename Obj $>$ \\
using \mbox{\hyperlink{namespacekblib_a1f329c91b6941e2cc765d59100b34749}{kblib\+::no\+\_\+move\+\_\+traits}} = typedef \mbox{\hyperlink{structkblib_1_1poly__obj__traits}{poly\+\_\+obj\+\_\+traits}}$<$Obj, \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa334c4a4c42fdb79d7ebc3e73b517e6f8}{construct\+\_\+type\+::none}}$>$}



Definition at line \mbox{\hyperlink{poly__obj_8h_source_l00454}{454}} of file \mbox{\hyperlink{poly__obj_8h_source}{poly\+\_\+obj.\+h}}.

\mbox{\Hypertarget{namespacekblib_ad3067cf43d6c4d6d61e9bbb81c145cf9}\label{namespacekblib_ad3067cf43d6c4d6d61e9bbb81c145cf9}} 
\index{kblib@{kblib}!remove\_cvref\_t@{remove\_cvref\_t}}
\index{remove\_cvref\_t@{remove\_cvref\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{remove\_cvref\_t}{remove\_cvref\_t}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
using \mbox{\hyperlink{namespacekblib_ad3067cf43d6c4d6d61e9bbb81c145cf9}{kblib\+::remove\+\_\+cvref\+\_\+t}} = typedef typename std\+::remove\+\_\+reference$<$typename std\+::remove\+\_\+cv$<$T$>$\+::type$>$\+::type}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00060}{60}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a4be602e9cbe25a984f76f7a66a0466cd}\label{namespacekblib_a4be602e9cbe25a984f76f7a66a0466cd}} 
\index{kblib@{kblib}!remove\_reference\_t@{remove\_reference\_t}}
\index{remove\_reference\_t@{remove\_reference\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{remove\_reference\_t}{remove\_reference\_t}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
using \mbox{\hyperlink{namespacekblib_a4be602e9cbe25a984f76f7a66a0466cd}{kblib\+::remove\+\_\+reference\+\_\+t}} = typedef typename std\+::remove\+\_\+reference$<$T$>$\+::type}



Abbreviated name for std\+::remove\+\_\+reference$<$\+T$>$\+::type for C++14. 



Definition at line \mbox{\hyperlink{traits_8h_source_l00438}{438}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_acdb4473ef9196a18a0e37e05171729f0}\label{namespacekblib_acdb4473ef9196a18a0e37e05171729f0}} 
\index{kblib@{kblib}!return\_assert\_t@{return\_assert\_t}}
\index{return\_assert\_t@{return\_assert\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{return\_assert\_t}{return\_assert\_t}}
{\footnotesize\ttfamily template$<$bool V, typename T $>$ \\
using \mbox{\hyperlink{namespacekblib_acdb4473ef9196a18a0e37e05171729f0}{kblib\+::return\+\_\+assert\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_1_1return__assert}{return\+\_\+assert}}$<$V, T$>$\+::type}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00543}{543}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_ace81df18accc355bebf9245f09107b51}\label{namespacekblib_ace81df18accc355bebf9245f09107b51}} 
\index{kblib@{kblib}!safe\_signed\_t@{safe\_signed\_t}}
\index{safe\_signed\_t@{safe\_signed\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{safe\_signed\_t}{safe\_signed\_t}}
{\footnotesize\ttfamily template$<$typename N $>$ \\
using \mbox{\hyperlink{namespacekblib_ace81df18accc355bebf9245f09107b51}{kblib\+::safe\+\_\+signed\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_1_1safe__signed}{safe\+\_\+signed}}$<$N$>$\+::type}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00847}{847}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_af598d7431e3f5b0be999dc7cb1ddca42}\label{namespacekblib_af598d7431e3f5b0be999dc7cb1ddca42}} 
\index{kblib@{kblib}!uint\_smallest@{uint\_smallest}}
\index{uint\_smallest@{uint\_smallest}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{uint\_smallest}{uint\_smallest}}
{\footnotesize\ttfamily template$<$std\+::uintmax\+\_\+t I$>$ \\
using \mbox{\hyperlink{namespacekblib_af598d7431e3f5b0be999dc7cb1ddca42}{kblib\+::uint\+\_\+smallest}} = typedef typename \mbox{\hyperlink{structkblib_1_1first__bigger__than}{first\+\_\+bigger\+\_\+than}}$<$1 + \mbox{\hyperlink{namespacekblib_a5633a966716e66c8230d039c7615e393}{filg2}}(I) / CHAR\+\_\+\+BIT, unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long, std\+::uintmax\+\_\+t$>$\+::type}



Definition at line \mbox{\hyperlink{simple_8h_source_l00186}{186}} of file \mbox{\hyperlink{simple_8h_source}{simple.\+h}}.

\mbox{\Hypertarget{namespacekblib_af6581571367a6b54af65b1174c2f416f}\label{namespacekblib_af6581571367a6b54af65b1174c2f416f}} 
\index{kblib@{kblib}!uint\_smallest\_t@{uint\_smallest\_t}}
\index{uint\_smallest\_t@{uint\_smallest\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{uint\_smallest\_t}{uint\_smallest\_t}}
{\footnotesize\ttfamily template$<$std\+::uintmax\+\_\+t I$>$ \\
using \mbox{\hyperlink{namespacekblib_af6581571367a6b54af65b1174c2f416f}{kblib\+::uint\+\_\+smallest\+\_\+t}} = typedef typename \mbox{\hyperlink{namespacekblib_af598d7431e3f5b0be999dc7cb1ddca42}{uint\+\_\+smallest}}$<$I$>$\+::type}



Definition at line \mbox{\hyperlink{simple_8h_source_l00198}{198}} of file \mbox{\hyperlink{simple_8h_source}{simple.\+h}}.

\mbox{\Hypertarget{namespacekblib_aa0f56c295f64726c092c84a77f025a85}\label{namespacekblib_aa0f56c295f64726c092c84a77f025a85}} 
\index{kblib@{kblib}!value\_detected\_t@{value\_detected\_t}}
\index{value\_detected\_t@{value\_detected\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{value\_detected\_t}{value\_detected\_t}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
using \mbox{\hyperlink{namespacekblib_aa0f56c295f64726c092c84a77f025a85}{kblib\+::value\+\_\+detected\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_1_1value__detected}{value\+\_\+detected}}$<$T$>$\+::type}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00884}{884}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac04bc7261d579d570a3847df654bc209}\label{namespacekblib_ac04bc7261d579d570a3847df654bc209}} 
\index{kblib@{kblib}!value\_type\_linear\_t@{value\_type\_linear\_t}}
\index{value\_type\_linear\_t@{value\_type\_linear\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{value\_type\_linear\_t}{value\_type\_linear\_t}}
{\footnotesize\ttfamily template$<$typename Container $>$ \\
using \mbox{\hyperlink{namespacekblib_ac04bc7261d579d570a3847df654bc209}{kblib\+::value\+\_\+type\+\_\+linear\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_1_1value__type__linear}{value\+\_\+type\+\_\+linear}}$<$Container$>$\+::type}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00934}{934}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab3cc24416f0b9a6504e1c6a437ed6230}\label{namespacekblib_ab3cc24416f0b9a6504e1c6a437ed6230}} 
\index{kblib@{kblib}!void\_if\_t@{void\_if\_t}}
\index{void\_if\_t@{void\_if\_t}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{void\_if\_t}{void\_if\_t}}
{\footnotesize\ttfamily template$<$bool b$>$ \\
using \mbox{\hyperlink{namespacekblib_ab3cc24416f0b9a6504e1c6a437ed6230}{kblib\+::void\+\_\+if\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_1_1void__if}{void\+\_\+if}}$<$b$>$\+::type}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00513}{513}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.



\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}\label{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}} 
\index{kblib@{kblib}!construct\_type@{construct\_type}}
\index{construct\_type@{construct\_type}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{construct\_type}{construct\_type}}
{\footnotesize\ttfamily enum class \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{kblib\+::construct\+\_\+type}} \+: unsigned\hspace{0.3cm}{\ttfamily [strong]}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{none@{none}!kblib@{kblib}}\index{kblib@{kblib}!none@{none}}}\mbox{\Hypertarget{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa334c4a4c42fdb79d7ebc3e73b517e6f8}\label{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa334c4a4c42fdb79d7ebc3e73b517e6f8}} 
none&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{copy\_only@{copy\_only}!kblib@{kblib}}\index{kblib@{kblib}!copy\_only@{copy\_only}}}\mbox{\Hypertarget{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa849f12a705c6dbc3ff5da992d47a9982}\label{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa849f12a705c6dbc3ff5da992d47a9982}} 
copy\+\_\+only&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{move@{move}!kblib@{kblib}}\index{kblib@{kblib}!move@{move}}}\mbox{\Hypertarget{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa3734a903022249b3010be1897042568e}\label{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa3734a903022249b3010be1897042568e}} 
move&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{both@{both}!kblib@{kblib}}\index{kblib@{kblib}!both@{both}}}\mbox{\Hypertarget{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aaf6cb3e816496528d4187db53bc66567f}\label{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aaf6cb3e816496528d4187db53bc66567f}} 
both&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{throw\_move@{throw\_move}!kblib@{kblib}}\index{kblib@{kblib}!throw\_move@{throw\_move}}}\mbox{\Hypertarget{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa04d3c750404e3d492d5d7d920189aa52}\label{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aa04d3c750404e3d492d5d7d920189aa52}} 
throw\+\_\+move&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{both\_throw@{both\_throw}!kblib@{kblib}}\index{kblib@{kblib}!both\_throw@{both\_throw}}}\mbox{\Hypertarget{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aab009e0a1fa84b4e6e58f4ea7acba9712}\label{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7aab009e0a1fa84b4e6e58f4ea7acba9712}} 
both\+\_\+throw&\\
\hline

\end{DoxyEnumFields}


Definition at line \mbox{\hyperlink{poly__obj_8h_source_l00040}{40}} of file \mbox{\hyperlink{poly__obj_8h_source}{poly\+\_\+obj.\+h}}.

\mbox{\Hypertarget{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694}\label{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694}} 
\index{kblib@{kblib}!endian@{endian}}
\index{endian@{endian}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{endian}{endian}}
{\footnotesize\ttfamily enum class \mbox{\hyperlink{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694}{kblib\+::endian}}\hspace{0.3cm}{\ttfamily [strong]}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{unknown@{unknown}!kblib@{kblib}}\index{kblib@{kblib}!unknown@{unknown}}}\mbox{\Hypertarget{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694aad921d60486366258809553a3db49a4a}\label{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694aad921d60486366258809553a3db49a4a}} 
unknown&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{little@{little}!kblib@{kblib}}\index{kblib@{kblib}!little@{little}}}\mbox{\Hypertarget{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694aaae6635e044ac56046b2893a529b5114}\label{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694aaae6635e044ac56046b2893a529b5114}} 
little&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{big@{big}!kblib@{kblib}}\index{kblib@{kblib}!big@{big}}}\mbox{\Hypertarget{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694ad861877da56b8b4ceb35c8cbfdf65bb4}\label{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694ad861877da56b8b4ceb35c8cbfdf65bb4}} 
big&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{weird@{weird}!kblib@{kblib}}\index{kblib@{kblib}!weird@{weird}}}\mbox{\Hypertarget{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694a498c381ba18fc1be2160719e3e0a7c45}\label{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694a498c381ba18fc1be2160719e3e0a7c45}} 
weird&\\
\hline

\end{DoxyEnumFields}


Definition at line \mbox{\hyperlink{tdecl_8h_source_l00194}{194}} of file \mbox{\hyperlink{tdecl_8h_source}{tdecl.\+h}}.

\mbox{\Hypertarget{namespacekblib_a54f01b64a070a7f3e916ec21e1d0145f}\label{namespacekblib_a54f01b64a070a7f3e916ec21e1d0145f}} 
\index{kblib@{kblib}!extractor\_policy@{extractor\_policy}}
\index{extractor\_policy@{extractor\_policy}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{extractor\_policy}{extractor\_policy}}
{\footnotesize\ttfamily enum class \mbox{\hyperlink{namespacekblib_a54f01b64a070a7f3e916ec21e1d0145f}{kblib\+::extractor\+\_\+policy}}\hspace{0.3cm}{\ttfamily [strong]}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{forward\_iteration@{forward\_iteration}!kblib@{kblib}}\index{kblib@{kblib}!forward\_iteration@{forward\_iteration}}}\mbox{\Hypertarget{namespacekblib_a54f01b64a070a7f3e916ec21e1d0145fa982690af3684bc526ae7a353bc6ef61e}\label{namespacekblib_a54f01b64a070a7f3e916ec21e1d0145fa982690af3684bc526ae7a353bc6ef61e}} 
forward\+\_\+iteration&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{random\_access@{random\_access}!kblib@{kblib}}\index{kblib@{kblib}!random\_access@{random\_access}}}\mbox{\Hypertarget{namespacekblib_a54f01b64a070a7f3e916ec21e1d0145fa298bbb8f070170fc998ccac67856211b}\label{namespacekblib_a54f01b64a070a7f3e916ec21e1d0145fa298bbb8f070170fc998ccac67856211b}} 
random\+\_\+access&\\
\hline

\end{DoxyEnumFields}


Definition at line \mbox{\hyperlink{trie_8h_source_l00047}{47}} of file \mbox{\hyperlink{trie_8h_source}{trie.\+h}}.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}\label{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}} 
\index{kblib@{kblib}!a@{a}}
\index{a@{a}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{a()}{a()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr auto kblib\+::a (\begin{DoxyParamCaption}\item[{const std\+::initializer\+\_\+list$<$ T $>$ \&}]{a }\end{DoxyParamCaption}) -\/$>$ auto \hspace{0.3cm}{\ttfamily [constexpr]}}



Index an array literal without naming its type. 

\begin{DoxyAttention}{Attention}
The return value must not be stored unless the argument is also stored. This is indexable because temporaries live until the end of their full-\/expression, rather than sub-\/expression
\end{DoxyAttention}

\begin{DoxyParams}{Parameters}
{\em a} & The array literal to index into. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{simple_8h_source_l00255}{255}} of file \mbox{\hyperlink{simple_8h_source}{simple.\+h}}.

\mbox{\Hypertarget{namespacekblib_abedf2e5c556e6ab3ebb779227172a2ac}\label{namespacekblib_abedf2e5c556e6ab3ebb779227172a2ac}} 
\index{kblib@{kblib}!accumulate@{accumulate}}
\index{accumulate@{accumulate}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{accumulate()}{accumulate()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename T $>$ \\
constexpr auto kblib\+::accumulate (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Input\+It}]{last,  }\item[{T}]{init }\end{DoxyParamCaption}) -\/$>$ T \hspace{0.3cm}{\ttfamily [constexpr]}}



A constexpr version of std\+::accumulate. 



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00162}{162}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a144f3d9a7e4b619bc53fbaf5e356c0c2}\label{namespacekblib_a144f3d9a7e4b619bc53fbaf5e356c0c2}} 
\index{kblib@{kblib}!accumulate@{accumulate}}
\index{accumulate@{accumulate}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{accumulate()}{accumulate()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$class Input\+It , class T , class Binary\+Operation $>$ \\
constexpr auto kblib\+::accumulate (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Input\+It}]{last,  }\item[{T}]{init,  }\item[{Binary\+Operation}]{op }\end{DoxyParamCaption}) -\/$>$ T \hspace{0.3cm}{\ttfamily [constexpr]}}



A constexpr version of std\+::accumulate. 



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00174}{174}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a707446076d1cc9e803e1041117924a73}\label{namespacekblib_a707446076d1cc9e803e1041117924a73}} 
\index{kblib@{kblib}!adaptive\_insertion\_sort\_copy@{adaptive\_insertion\_sort\_copy}}
\index{adaptive\_insertion\_sort\_copy@{adaptive\_insertion\_sort\_copy}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{adaptive\_insertion\_sort\_copy()}{adaptive\_insertion\_sort\_copy()}}
{\footnotesize\ttfamily template$<$typename Random\+Access\+It , typename Random\+Access\+It2 , typename Compare  = std\+::less$<$$>$$>$ \\
constexpr auto kblib\+::adaptive\+\_\+insertion\+\_\+sort\+\_\+copy (\begin{DoxyParamCaption}\item[{const Random\+Access\+It}]{begin,  }\item[{const Random\+Access\+It}]{end,  }\item[{const Random\+Access\+It2}]{d\+\_\+begin,  }\item[{const Random\+Access\+It2}]{d\+\_\+end,  }\item[{Compare \&\&}]{compare = {\ttfamily \{\}} }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



An adaptive sort which, at the cost of some additional work (time complexity Θ(sqrt(n))), avoids quadratic behavior for reverse-\/sorted inputs (and, in fact, handles them in optimal time). It\textquotesingle{}s still possible to fool it, but it requires a staggered input, which is a highly unlikely shape for random data. 

\begin{DoxyRemark}{Remarks}
Complexity\+: 

Average case O(n$^\wedge$2) 

Best-\/case Θ(n + sqrt(n)) (for sorted input) 

worst-\/case O(n$^\wedge$2) (for reverse-\/sorted input)
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em begin,end} & The input range \\
\hline
{\em d\+\_\+begin,d\+\_\+end} & The output range \\
\hline
{\em compare} & The comparison predicate \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{sort_8h_source_l00178}{178}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab437bea5ac232c0a681f8bb1d3754170}\label{namespacekblib_ab437bea5ac232c0a681f8bb1d3754170}} 
\index{kblib@{kblib}!all\_of@{all\_of}}
\index{all\_of@{all\_of}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{all\_of()}{all\_of()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::all\+\_\+of (\begin{DoxyParamCaption}\item[{Input\+It}]{begin,  }\item[{Input\+It}]{end,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It$>$\+::value, bool$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Determine if pred is true for every element of the range. 



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00970}{970}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a3a1a48159ee73f9c98ad2665c3fd4079}\label{namespacekblib_a3a1a48159ee73f9c98ad2665c3fd4079}} 
\index{kblib@{kblib}!all\_of@{all\_of}}
\index{all\_of@{all\_of}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{all\_of()}{all\_of()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Range , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::all\+\_\+of (\begin{DoxyParamCaption}\item[{Range \&\&}]{rng,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}}$<$Range$>$\+::value, bool$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Determine if pred is true for every element of the range. 



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00984}{984}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a2696df0185d20ec1445d22247e259ab1}\label{namespacekblib_a2696df0185d20ec1445d22247e259ab1}} 
\index{kblib@{kblib}!any\_of@{any\_of}}
\index{any\_of@{any\_of}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{any\_of()}{any\_of()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::any\+\_\+of (\begin{DoxyParamCaption}\item[{Input\+It}]{begin,  }\item[{Input\+It}]{end,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It$>$\+::value, bool$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Determine if pred is true for at least one element of the range. 



Definition at line \mbox{\hyperlink{algorithm_8h_source_l01024}{1024}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a16a5842f4404c27f10371190be51bf49}\label{namespacekblib_a16a5842f4404c27f10371190be51bf49}} 
\index{kblib@{kblib}!any\_of@{any\_of}}
\index{any\_of@{any\_of}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{any\_of()}{any\_of()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Range , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::any\+\_\+of (\begin{DoxyParamCaption}\item[{Range \&\&}]{rng,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}}$<$Range$>$\+::value, bool$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Determine if pred is true for every element of the range. 



Definition at line \mbox{\hyperlink{algorithm_8h_source_l01038}{1038}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab4642bf06f44ec657126cea9a3272f1c}\label{namespacekblib_ab4642bf06f44ec657126cea9a3272f1c}} 
\index{kblib@{kblib}!append@{append}}
\index{append@{append}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{append()}{append()}}
{\footnotesize\ttfamily template$<$typename string , typename F , typename... S$>$ \\
auto kblib\+::append (\begin{DoxyParamCaption}\item[{string \&\&}]{out,  }\item[{F \&\&}]{f,  }\item[{S \&\&...}]{tail }\end{DoxyParamCaption}) -\/$>$ void }



Given an object out of resizable stringlike type string, appends all other arguments to it. 

Stringlike types and characters are simply appended, while arithmetic types are first converted to strings using std\+::to\+\_\+string.


\begin{DoxyParams}{Parameters}
{\em out} & The string to append to. \\
\hline
{\em f} & The first value to append to out. \\
\hline
{\em tail} & Any number of subsequent values to append to out. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00251}{251}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a3873199be1651ec4e0fda92171b2b82c}\label{namespacekblib_a3873199be1651ec4e0fda92171b2b82c}} 
\index{kblib@{kblib}!apply@{apply}}
\index{apply@{apply}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{apply()}{apply()}}
{\footnotesize\ttfamily template$<$typename F , typename Arg $>$ \\
constexpr auto kblib\+::apply (\begin{DoxyParamCaption}\item[{F \&\&}]{f,  }\item[{Arg \&\&}]{arg }\end{DoxyParamCaption}) -\/$>$ decltype(auto) \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00562}{562}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a4b5107514451c00067d9ec0c58721009}\label{namespacekblib_a4b5107514451c00067d9ec0c58721009}} 
\index{kblib@{kblib}!arraycat@{arraycat}}
\index{arraycat@{arraycat}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{arraycat()}{arraycat()}}
{\footnotesize\ttfamily template$<$typename Left\+Container , typename Right\+Container $>$ \\
auto kblib\+::arraycat (\begin{DoxyParamCaption}\item[{Left\+Container}]{A,  }\item[{Right\+Container \&\&}]{B }\end{DoxyParamCaption}) -\/$>$ Left\+Container \hspace{0.3cm}{\ttfamily [noexcept]}}



Concatenate two dynamic containers together. 


\begin{DoxyParams}{Parameters}
{\em A,B} & The containers to concatenate together. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container A container consisting of the elements of A and B in that order. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{simple_8h_source_l00237}{237}} of file \mbox{\hyperlink{simple_8h_source}{simple.\+h}}.

\mbox{\Hypertarget{namespacekblib_afcdcafb387d1769318df68f2b5598d96}\label{namespacekblib_afcdcafb387d1769318df68f2b5598d96}} 
\index{kblib@{kblib}!build@{build}}
\index{build@{build}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build()}{build()}\hspace{0.1cm}{\footnotesize\ttfamily [1/6]}}
{\footnotesize\ttfamily template$<$typename Container , typename Functor $>$ \\
auto kblib\+::build (\begin{DoxyParamCaption}\item[{Functor}]{f,  }\item[{size\+\_\+t}]{size,  }\item[{typename Container\+::allocator\+\_\+type}]{allocator = {\ttfamily typename~Container\+:\+:allocator\+\_\+type\{\}} }\end{DoxyParamCaption}) -\/$>$ Container }



Constructs a container with elements initialized by repeatedly calling a generating function. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Container} & The type of container to return. Must be an Allocator\+Aware Sequence\+Container. \\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em f} & The functor to repeatedly invoke. \\
\hline
{\em size} & The number of times to invoke {\ttfamily f}. \\
\hline
{\em allocator} & The allocator to use for the returned container. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A Container where each element is the result of invoking {\ttfamily f} in sequence. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00168}{168}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_af103b44450c172da5a091d738b7b1e53}\label{namespacekblib_af103b44450c172da5a091d738b7b1e53}} 
\index{kblib@{kblib}!build@{build}}
\index{build@{build}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build()}{build()}\hspace{0.1cm}{\footnotesize\ttfamily [2/6]}}
{\footnotesize\ttfamily template$<$typename Array , typename Functor , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Array $>$, int $>$  = 0$>$ \\
auto kblib\+::build (\begin{DoxyParamCaption}\item[{Functor}]{f,  }\item[{size\+\_\+t}]{size = {\ttfamily std\+:\+:tuple\+\_\+size$<$Array$>$\+:\+:value} }\end{DoxyParamCaption}) -\/$>$ Array }



Constructs an array-\/like container with elements initialized by repeatedly calling a generating function. 

\begin{DoxyRemark}{Remarks}
Because Array is non-\/resizable, the entire Array will be default-\/constructed and then the elements assigned to, rather than copy-\/constructed.
\end{DoxyRemark}

\begin{DoxyTemplParams}{Template Parameters}
{\em Array} & The type of container to return. Must be a non-\/resizable Container similar to std\+::array. \\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em f} & The functor to repeatedly invoke. \\
\hline
{\em size} & The number of times to invoke {\ttfamily f}. Defaults to the size of the Container, which is usually correct. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An Array where each element is the result of invoking {\ttfamily f} in sequence. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00195}{195}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_add6c009a3c106ba1528c168dee122c77}\label{namespacekblib_add6c009a3c106ba1528c168dee122c77}} 
\index{kblib@{kblib}!build@{build}}
\index{build@{build}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build()}{build()}\hspace{0.1cm}{\footnotesize\ttfamily [3/6]}}
{\footnotesize\ttfamily template$<$typename Array , typename Input\+It , typename Input\+It2 , typename Binary\+Function , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Array $>$, int $>$  = 0$>$ \\
auto kblib\+::build (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Input\+It}]{last,  }\item[{Input\+It2}]{first2,  }\item[{Binary\+Function}]{f }\end{DoxyParamCaption}) -\/$>$ Array }



Constructs an array-\/like container by applying a Binary\+Function to every pair of elements in the input ranges. 

\begin{DoxyPrecond}{Precondition}
The size of the second input range must be equal to or less than the size of the first. 
\end{DoxyPrecond}
\begin{DoxyRemark}{Remarks}
Because Array is non-\/resizable, the entire Array will be default-\/constructed and then the elements assigned to, rather than copy-\/constructed.
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em first} & Beginning of input range. \\
\hline
{\em last} & End of input range. \\
\hline
{\em first2} & Beginning of second input range \\
\hline
{\em f} & A Binary\+Function to apply to the elements of the two input ranges. \\
\hline
\end{DoxyParams}

\begin{DoxyTemplParams}{Template Parameters}
{\em Array} & The type of container to return. Must be a non-\/resizable Container similar to std\+::array. \\
\hline
\end{DoxyTemplParams}
\begin{DoxyReturn}{Returns}
An Array where each element is generated from a corresponding pair of elements in the input ranges. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00148}{148}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac0df0a7581f417956e3c29ec29f8a0c9}\label{namespacekblib_ac0df0a7581f417956e3c29ec29f8a0c9}} 
\index{kblib@{kblib}!build@{build}}
\index{build@{build}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build()}{build()}\hspace{0.1cm}{\footnotesize\ttfamily [4/6]}}
{\footnotesize\ttfamily template$<$typename Container , typename Input\+It , typename Input\+It2 , typename Binary\+Function $>$ \\
auto kblib\+::build (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Input\+It}]{last,  }\item[{Input\+It2}]{first2,  }\item[{Binary\+Function}]{f,  }\item[{typename Container\+::allocator\+\_\+type}]{allocator = {\ttfamily typename~Container\+:\+:allocator\+\_\+type\{\}} }\end{DoxyParamCaption}) -\/$>$ Container }



Constructs a container by applying a Binary\+Function to every pair of elements in the input ranges. 

\begin{DoxyPrecond}{Precondition}
The size of the second input range must be equal to or less than the size of the first.
\end{DoxyPrecond}

\begin{DoxyParams}{Parameters}
{\em first} & Beginning of input range. \\
\hline
{\em last} & End of input range. \\
\hline
{\em first2} & Beginning of second input range \\
\hline
{\em f} & A Binary\+Function to apply to the elements of the two input ranges. \\
\hline
\end{DoxyParams}

\begin{DoxyTemplParams}{Template Parameters}
{\em Container} & The type of container to return. Must be an Allocator\+Aware Sequence\+Container. \\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em allocator} & The allocator to use for the returned container. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A Container where each element is generated from a corresponding pair of elements in the input ranges. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00092}{92}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_a33d7779af12cb836b7a07e762c4251ee}\label{namespacekblib_a33d7779af12cb836b7a07e762c4251ee}} 
\index{kblib@{kblib}!build@{build}}
\index{build@{build}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build()}{build()}\hspace{0.1cm}{\footnotesize\ttfamily [5/6]}}
{\footnotesize\ttfamily template$<$typename Array , typename Input\+It , typename Unary\+Function , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Array $>$, int $>$  = 0$>$ \\
auto kblib\+::build (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Input\+It}]{last,  }\item[{Unary\+Function}]{f }\end{DoxyParamCaption}) -\/$>$ Array }



Constructs an array-\/like container by applying a Unary\+Function to every element of an input range. 

\begin{DoxyPrecond}{Precondition}
The size of the input range must be equal to or less than the size of Container. 
\end{DoxyPrecond}
\begin{DoxyRemark}{Remarks}
Because Array is non-\/resizable, the entire Array will be default-\/constructed and then the elements assigned to, rather than copy-\/constructed.
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em first} & Beginning of input range. \\
\hline
{\em last} & End of input range. \\
\hline
{\em f} & A Unary\+Function to apply to each element of the input range. \\
\hline
\end{DoxyParams}

\begin{DoxyTemplParams}{Template Parameters}
{\em Array} & The type of container to return. Must be a non-\/resizable Container similar to std\+::array. \\
\hline
\end{DoxyTemplParams}
\begin{DoxyReturn}{Returns}
An Array where each element is a transformed element of the input range. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00121}{121}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_a392972471eeedefaafc0f5154c3a4a32}\label{namespacekblib_a392972471eeedefaafc0f5154c3a4a32}} 
\index{kblib@{kblib}!build@{build}}
\index{build@{build}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build()}{build()}\hspace{0.1cm}{\footnotesize\ttfamily [6/6]}}
{\footnotesize\ttfamily template$<$typename Container , typename Input\+It , typename Unary\+Function $>$ \\
auto kblib\+::build (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Input\+It}]{last,  }\item[{Unary\+Function}]{f,  }\item[{typename Container\+::allocator\+\_\+type}]{allocator = {\ttfamily typename~Container\+:\+:allocator\+\_\+type\{\}} }\end{DoxyParamCaption}) -\/$>$ Container }



Constructs a container by applying a Unary\+Function to every element of an input range. 


\begin{DoxyParams}{Parameters}
{\em first} & Beginning of input range. \\
\hline
{\em last} & End of input range. \\
\hline
{\em f} & A Unary\+Function to apply to each element of the input range. \\
\hline
\end{DoxyParams}

\begin{DoxyTemplParams}{Template Parameters}
{\em Container} & The type of container to return. Must be an Allocator\+Aware Sequence\+Container. \\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em allocator} & The allocator to use for the returned container. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A Container where each element is a transformed element of the input range. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00066}{66}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_afdf68a6165cea2d31b0e940fd4de7d6a}\label{namespacekblib_afdf68a6165cea2d31b0e940fd4de7d6a}} 
\index{kblib@{kblib}!build\_copy@{build\_copy}}
\index{build\_copy@{build\_copy}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build\_copy()}{build\_copy()}\hspace{0.1cm}{\footnotesize\ttfamily [1/7]}}
{\footnotesize\ttfamily template$<$typename Container , typename Input\+It , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Container $>$, int $>$  = 0$>$ \\
constexpr auto kblib\+::build\+\_\+copy (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Input\+It}]{last }\end{DoxyParamCaption}) -\/$>$ Container \hspace{0.3cm}{\ttfamily [constexpr]}}


\begin{DoxyParams}{Parameters}
{\em first} & \\
\hline
{\em last} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00491}{491}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_a22c37be2f65bb8810e0add151d6def8b}\label{namespacekblib_a22c37be2f65bb8810e0add151d6def8b}} 
\index{kblib@{kblib}!build\_copy@{build\_copy}}
\index{build\_copy@{build\_copy}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build\_copy()}{build\_copy()}\hspace{0.1cm}{\footnotesize\ttfamily [2/7]}}
{\footnotesize\ttfamily template$<$typename Container , typename Input\+It , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Container $>$, int $>$  = 0$>$ \\
auto kblib\+::build\+\_\+copy (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Input\+It}]{last,  }\item[{std\+::size\+\_\+t}]{size }\end{DoxyParamCaption}) -\/$>$ Container }


\begin{DoxyParams}{Parameters}
{\em first} & \\
\hline
{\em last} & \\
\hline
{\em size} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00532}{532}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae140416fd22ee702f769b7fcd5b62d66}\label{namespacekblib_ae140416fd22ee702f769b7fcd5b62d66}} 
\index{kblib@{kblib}!build\_copy@{build\_copy}}
\index{build\_copy@{build\_copy}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build\_copy()}{build\_copy()}\hspace{0.1cm}{\footnotesize\ttfamily [3/7]}}
{\footnotesize\ttfamily template$<$typename Container , typename Input\+It $>$ \\
auto kblib\+::build\+\_\+copy (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Input\+It}]{last,  }\item[{typename Container\+::allocator\+\_\+type}]{allocator = {\ttfamily typename~Container\+:\+:allocator\+\_\+type\{\}} }\end{DoxyParamCaption}) -\/$>$ Container }


\begin{DoxyParams}{Parameters}
{\em first} & \\
\hline
{\em last} & \\
\hline
{\em allocator} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00439}{439}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab5819760aeb8cb631c6b11d23c1f7d87}\label{namespacekblib_ab5819760aeb8cb631c6b11d23c1f7d87}} 
\index{kblib@{kblib}!build\_copy@{build\_copy}}
\index{build\_copy@{build\_copy}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build\_copy()}{build\_copy()}\hspace{0.1cm}{\footnotesize\ttfamily [4/7]}}
{\footnotesize\ttfamily template$<$typename Container , typename Range , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Container $>$, int $>$  = 0$>$ \\
auto kblib\+::build\+\_\+copy (\begin{DoxyParamCaption}\item[{Range \&\&}]{r }\end{DoxyParamCaption}) -\/$>$ Container }


\begin{DoxyParams}{Parameters}
{\em r} & \\
\hline
{\em allocator} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00457}{457}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac64ffa3114496642a4728082bac29a4e}\label{namespacekblib_ac64ffa3114496642a4728082bac29a4e}} 
\index{kblib@{kblib}!build\_copy@{build\_copy}}
\index{build\_copy@{build\_copy}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build\_copy()}{build\_copy()}\hspace{0.1cm}{\footnotesize\ttfamily [5/7]}}
{\footnotesize\ttfamily template$<$typename Container , typename Range , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Container $>$, int $>$  = 0$>$ \\
constexpr auto kblib\+::build\+\_\+copy (\begin{DoxyParamCaption}\item[{Range \&\&}]{r }\end{DoxyParamCaption}) -\/$>$ Container \hspace{0.3cm}{\ttfamily [constexpr]}}


\begin{DoxyParams}{Parameters}
{\em r} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00510}{510}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_adc410174377c7de2738ce5036fe31b99}\label{namespacekblib_adc410174377c7de2738ce5036fe31b99}} 
\index{kblib@{kblib}!build\_copy@{build\_copy}}
\index{build\_copy@{build\_copy}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build\_copy()}{build\_copy()}\hspace{0.1cm}{\footnotesize\ttfamily [6/7]}}
{\footnotesize\ttfamily template$<$typename Container , typename Range , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Container $>$, int $>$  = 0$>$ \\
auto kblib\+::build\+\_\+copy (\begin{DoxyParamCaption}\item[{Range \&\&}]{r,  }\item[{std\+::size\+\_\+t}]{size }\end{DoxyParamCaption}) -\/$>$ Container }


\begin{DoxyParams}{Parameters}
{\em r} & \\
\hline
{\em size} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00553}{553}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac1661b5bdfb17ff4ba473af6d88c61aa}\label{namespacekblib_ac1661b5bdfb17ff4ba473af6d88c61aa}} 
\index{kblib@{kblib}!build\_copy@{build\_copy}}
\index{build\_copy@{build\_copy}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build\_copy()}{build\_copy()}\hspace{0.1cm}{\footnotesize\ttfamily [7/7]}}
{\footnotesize\ttfamily template$<$typename Container , typename Range $>$ \\
auto kblib\+::build\+\_\+copy (\begin{DoxyParamCaption}\item[{Range \&\&}]{r,  }\item[{typename Container\+::allocator\+\_\+type}]{allocator = {\ttfamily typename~Container\+:\+:allocator\+\_\+type\{\}} }\end{DoxyParamCaption}) -\/$>$ Container }


\begin{DoxyParams}{Parameters}
{\em r} & \\
\hline
{\em allocator} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00473}{473}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_a8b4bd970deaa3f4685bb38e8ee2a9316}\label{namespacekblib_a8b4bd970deaa3f4685bb38e8ee2a9316}} 
\index{kblib@{kblib}!build\_copy\_if@{build\_copy\_if}}
\index{build\_copy\_if@{build\_copy\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build\_copy\_if()}{build\_copy\_if()}}
{\footnotesize\ttfamily template$<$typename Container , typename Input\+It , typename Predicate $>$ \\
auto kblib\+::build\+\_\+copy\+\_\+if (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Input\+It}]{last,  }\item[{Predicate}]{f,  }\item[{typename Container\+::allocator\+\_\+type}]{allocator = {\ttfamily typename~Container\+:\+:allocator\+\_\+type\{\}} }\end{DoxyParamCaption}) -\/$>$ Container }


\begin{DoxyParams}{Parameters}
{\em first} & \\
\hline
{\em last} & \\
\hline
{\em f} & \\
\hline
{\em allocator} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00576}{576}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_a16745b0c40e85addaa80021ad277a86d}\label{namespacekblib_a16745b0c40e85addaa80021ad277a86d}} 
\index{kblib@{kblib}!build\_copy\_n@{build\_copy\_n}}
\index{build\_copy\_n@{build\_copy\_n}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build\_copy\_n()}{build\_copy\_n()}}
{\footnotesize\ttfamily template$<$typename Container , typename Input\+It , typename Size $>$ \\
auto kblib\+::build\+\_\+copy\+\_\+n (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Size}]{count,  }\item[{typename Container\+::allocator\+\_\+type}]{allocator = {\ttfamily typename~Container\+:\+:allocator\+\_\+type\{\}} }\end{DoxyParamCaption}) -\/$>$ Container }


\begin{DoxyParams}{Parameters}
{\em first} & \\
\hline
{\em count} & \\
\hline
{\em allocator} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00594}{594}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_a3e9f8222a9efb7046888b2d45550d4a4}\label{namespacekblib_a3e9f8222a9efb7046888b2d45550d4a4}} 
\index{kblib@{kblib}!build\_copy\_n\_if@{build\_copy\_n\_if}}
\index{build\_copy\_n\_if@{build\_copy\_n\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build\_copy\_n\_if()}{build\_copy\_n\_if()}}
{\footnotesize\ttfamily template$<$typename Container , typename Input\+It , typename Size , typename Predicate $>$ \\
auto kblib\+::build\+\_\+copy\+\_\+n\+\_\+if (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Size}]{count,  }\item[{Predicate}]{f,  }\item[{typename Container\+::allocator\+\_\+type}]{allocator = {\ttfamily typename~Container\+:\+:allocator\+\_\+type\{\}} }\end{DoxyParamCaption}) -\/$>$ Container }


\begin{DoxyParams}{Parameters}
{\em first} & \\
\hline
{\em count} & \\
\hline
{\em f} & \\
\hline
{\em allocator} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00614}{614}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_a1958e5a6146a77e469fe8e892a95d550}\label{namespacekblib_a1958e5a6146a77e469fe8e892a95d550}} 
\index{kblib@{kblib}!build\_dy@{build\_dy}}
\index{build\_dy@{build\_dy}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build\_dy()}{build\_dy()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily template$<$typename Container , typename Functor $>$ \\
auto kblib\+::build\+\_\+dy (\begin{DoxyParamCaption}\item[{Functor}]{f,  }\item[{size\+\_\+t}]{size }\end{DoxyParamCaption}) -\/$>$ Container }



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). 


\begin{DoxyParams}{Parameters}
{\em f} & The functor to repeatedly invoke. \\
\hline
{\em size} & The number of times to invoke {\ttfamily f}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A Container where each element is the result of invoking {\ttfamily f} in sequence. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00260}{260}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae4de9abf1f3ed56dd637e0aeeeb555a3}\label{namespacekblib_ae4de9abf1f3ed56dd637e0aeeeb555a3}} 
\index{kblib@{kblib}!build\_dy@{build\_dy}}
\index{build\_dy@{build\_dy}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build\_dy()}{build\_dy()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily template$<$typename Container , typename Input\+It , typename Input\+It2 , typename Binary\+Function $>$ \\
auto kblib\+::build\+\_\+dy (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Input\+It}]{last,  }\item[{Input\+It2}]{first2,  }\item[{Binary\+Function}]{f }\end{DoxyParamCaption}) -\/$>$ Container }



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). 

\begin{DoxyPrecond}{Precondition}
The size of the second input range must be equal to or less than the size of the first.
\end{DoxyPrecond}

\begin{DoxyParams}{Parameters}
{\em first} & Beginning of input range. \\
\hline
{\em last} & End of input range. \\
\hline
{\em first2} & Beginning of second input range \\
\hline
{\em f} & A Binary\+Function to apply to the elements of the two input ranges. \\
\hline
\end{DoxyParams}

\begin{DoxyTemplParams}{Template Parameters}
{\em Container} & The type of container to return. Must be a resizable Sequence\+Container. \\
\hline
\end{DoxyTemplParams}
\begin{DoxyReturn}{Returns}
A Container where each element is generated from a corresponding pair of elements in the input ranges. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00242}{242}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_a7ac67153b0398f6cb4a57690d3d3bad0}\label{namespacekblib_a7ac67153b0398f6cb4a57690d3d3bad0}} 
\index{kblib@{kblib}!build\_dy@{build\_dy}}
\index{build\_dy@{build\_dy}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build\_dy()}{build\_dy()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily template$<$typename Container , typename Input\+It , typename Unary\+Function $>$ \\
auto kblib\+::build\+\_\+dy (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Input\+It}]{last,  }\item[{Unary\+Function}]{f }\end{DoxyParamCaption}) -\/$>$ Container }



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). 


\begin{DoxyParams}{Parameters}
{\em first} & Beginning of input range. \\
\hline
{\em last} & End of input range. \\
\hline
{\em f} & A Unary\+Function to apply to each element of the input range. \\
\hline
\end{DoxyParams}

\begin{DoxyTemplParams}{Template Parameters}
{\em Container} & The type of container to return. Must be a resizable Sequence\+Container. \\
\hline
\end{DoxyTemplParams}
\begin{DoxyReturn}{Returns}
A Container where each element is a transformed element of the input range. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00218}{218}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae538bfb0085fabd1601825a87bb792b3}\label{namespacekblib_ae538bfb0085fabd1601825a87bb792b3}} 
\index{kblib@{kblib}!build\_dy@{build\_dy}}
\index{build\_dy@{build\_dy}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build\_dy()}{build\_dy()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily template$<$typename Container , typename Range , typename Unary\+Function , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{namespacekblib_a928b1f231946db62ee4c171a21593919}{is\+\_\+resizable\+\_\+v}}$<$ Container $>$, int $>$  = 0$>$ \\
auto kblib\+::build\+\_\+dy (\begin{DoxyParamCaption}\item[{Range \&\&}]{r,  }\item[{Unary\+Function}]{f }\end{DoxyParamCaption}) -\/$>$ Container }


\begin{DoxyParams}{Parameters}
{\em r} & \\
\hline
{\em allocator} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{build_8h_source_l00276}{276}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_a2024ab838aaf4e23deb9bbc98390e887}\label{namespacekblib_a2024ab838aaf4e23deb9bbc98390e887}} 
\index{kblib@{kblib}!buildiota@{buildiota}}
\index{buildiota@{buildiota}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{buildiota()}{buildiota()}}
{\footnotesize\ttfamily template$<$typename Container , typename... Args$>$ \\
constexpr auto kblib\+::buildiota (\begin{DoxyParamCaption}\item[{Args \&\&...}]{args }\end{DoxyParamCaption}) -\/$>$ auto \hspace{0.3cm}{\ttfamily [constexpr]}}



Builds a container of increasing values. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Container} & Either a resizable (like std\+::vector) or non-\/resizable (like std\+::array) Container. \\
\hline
\end{DoxyTemplParams}
\begin{DoxyRemark}{Remarks}
If Container is non-\/resizable, then elements are first value-\/initialized and then assigned to, otherwise values are inserted directly. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em args} & If Container is resizable, the first argument is the size of container to return, otherwise there is no size argument. The next argument is always the starting value. Optionally, an increment may be specified as a final argument. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{build_8h_source_l00425}{425}} of file \mbox{\hyperlink{build_8h_source}{build.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae5b7fdf2bbba96527afa217fad0dea1f}\label{namespacekblib_ae5b7fdf2bbba96527afa217fad0dea1f}} 
\index{kblib@{kblib}!byte\_cast@{byte\_cast}}
\index{byte\_cast@{byte\_cast}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{byte\_cast()}{byte\_cast()}}
{\footnotesize\ttfamily template$<$typename T , typename F $>$ \\
auto kblib\+::byte\+\_\+cast (\begin{DoxyParamCaption}\item[{F}]{v }\end{DoxyParamCaption}) -\/$>$ T \hspace{0.3cm}{\ttfamily [noexcept]}}



Creates a T with the same object representation as the given F. 

T and F must be the same size and must both be trivially copyable.

\begin{DoxyNote}{Note}
Will be fully replaceable by std\+::bit\+\_\+cast in C++20.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em v} & A value to reinterpret. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T The reinterpreted value. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{traits_8h_source_l00182}{182}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_a84bbf075be5e924b9ff6efd6fb9ea0de}\label{namespacekblib_a84bbf075be5e924b9ff6efd6fb9ea0de}} 
\index{kblib@{kblib}!byte\_count@{byte\_count}}
\index{byte\_count@{byte\_count}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{byte\_count()}{byte\_count()}\hspace{0.1cm}{\footnotesize\ttfamily [1/5]}}
{\footnotesize\ttfamily constexpr auto kblib\+::byte\+\_\+count (\begin{DoxyParamCaption}\item[{}]{... }\end{DoxyParamCaption}) -\/$>$  void=delete\hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [delete]}}

\mbox{\Hypertarget{namespacekblib_afca31fdc704e55f5ffabeea66e533794}\label{namespacekblib_afca31fdc704e55f5ffabeea66e533794}} 
\index{kblib@{kblib}!byte\_count@{byte\_count}}
\index{byte\_count@{byte\_count}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{byte\_count()}{byte\_count()}\hspace{0.1cm}{\footnotesize\ttfamily [2/5]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr auto kblib\+::byte\+\_\+count (\begin{DoxyParamCaption}\item[{const std\+::unique\+\_\+ptr$<$ T $>$ \&}]{ }\end{DoxyParamCaption}) -\/$>$ std\+::size\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{sort_8h_source_l00271}{271}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}.

\mbox{\Hypertarget{namespacekblib_a913269f668b6359d0ebc552f8fdb9bc6}\label{namespacekblib_a913269f668b6359d0ebc552f8fdb9bc6}} 
\index{kblib@{kblib}!byte\_count@{byte\_count}}
\index{byte\_count@{byte\_count}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{byte\_count()}{byte\_count()}\hspace{0.1cm}{\footnotesize\ttfamily [3/5]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr auto kblib\+::byte\+\_\+count (\begin{DoxyParamCaption}\item[{const T \&}]{x }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$     is\+\_\+linear\+\_\+container\+\_\+v$<$         T$>$ and (std\+::is\+\_\+integral$<$typename T\+::value\+\_\+type$>$\+::value or \mbox{\hyperlink{namespacekblib_ad80f4ade2acc180c9caf217300f2ffa5}{is\+\_\+byte\+\_\+v}}$<$T$>$)         and sizeof(typename T\+::value\+\_\+type) == 1,     std\+::size\+\_\+t$>$ \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{sort_8h_source_l00276}{276}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}.

\mbox{\Hypertarget{namespacekblib_aafdfcc252a37b2ca60ce1807d188d658}\label{namespacekblib_aafdfcc252a37b2ca60ce1807d188d658}} 
\index{kblib@{kblib}!byte\_count@{byte\_count}}
\index{byte\_count@{byte\_count}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{byte\_count()}{byte\_count()}\hspace{0.1cm}{\footnotesize\ttfamily [4/5]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr auto kblib\+::byte\+\_\+count (\begin{DoxyParamCaption}\item[{T $\ast$}]{ }\end{DoxyParamCaption}) -\/$>$ std\+::size\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{sort_8h_source_l00267}{267}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}.

\mbox{\Hypertarget{namespacekblib_a407763ccb393b23e4d9616cd76f03fe5}\label{namespacekblib_a407763ccb393b23e4d9616cd76f03fe5}} 
\index{kblib@{kblib}!byte\_count@{byte\_count}}
\index{byte\_count@{byte\_count}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{byte\_count()}{byte\_count()}\hspace{0.1cm}{\footnotesize\ttfamily [5/5]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr auto kblib\+::byte\+\_\+count (\begin{DoxyParamCaption}\item[{T}]{ }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$std\+::is\+\_\+integral$<$T$>$\+::value, std\+::size\+\_\+t$>$ \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{sort_8h_source_l00252}{252}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}.

\mbox{\Hypertarget{namespacekblib_a90baddc76df99c83665b9fa3d45609e2}\label{namespacekblib_a90baddc76df99c83665b9fa3d45609e2}} 
\index{kblib@{kblib}!calc\_fib\_size@{calc\_fib\_size}}
\index{calc\_fib\_size@{calc\_fib\_size}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{calc\_fib\_size()}{calc\_fib\_size()}}
{\footnotesize\ttfamily template$<$typename U $>$ \\
constexpr auto kblib\+::calc\+\_\+fib\+\_\+size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ std\+::size\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Calculate the index of the largest fibonacci number that can be represented by a given unsigned integral type. 

\begin{DoxyRemark}{Remarks}
Here is a table of the results for common bit-\/widths\+: \begin{DoxyVerb}bits  N    fibonacci(N)
--------------------------------------------------
8     13   144
16    24   28657
32    47   1836311903
64    93   7540113804746346429
128   186  205697230343233228174223751303346572685
\end{DoxyVerb}

\end{DoxyRemark}
\begin{DoxyReturn}{Returns}
std\+::size\+\_\+t 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stats_8h_source_l00132}{132}} of file \mbox{\hyperlink{stats_8h_source}{stats.\+h}}.

\mbox{\Hypertarget{namespacekblib_adf7bda5746d41d56ad8030ec34042c49}\label{namespacekblib_adf7bda5746d41d56ad8030ec34042c49}} 
\index{kblib@{kblib}!calculate\_translated\_index@{calculate\_translated\_index}}
\index{calculate\_translated\_index@{calculate\_translated\_index}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{calculate\_translated\_index()}{calculate\_translated\_index()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily auto kblib\+::calculate\+\_\+translated\+\_\+index (\begin{DoxyParamCaption}\item[{const char $\ast$}]{value,  }\item[{const char $\ast$}]{p }\end{DoxyParamCaption}) -\/$>$ std\+::ptrdiff\+\_\+t \hspace{0.3cm}{\ttfamily [inline]}}



Definition at line \mbox{\hyperlink{convert_8h_source_l00591}{591}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_afb501736f34154b5b1864cdace039fba}\label{namespacekblib_afb501736f34154b5b1864cdace039fba}} 
\index{kblib@{kblib}!calculate\_translated\_index@{calculate\_translated\_index}}
\index{calculate\_translated\_index@{calculate\_translated\_index}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{calculate\_translated\_index()}{calculate\_translated\_index()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename string $>$ \\
auto kblib\+::calculate\+\_\+translated\+\_\+index (\begin{DoxyParamCaption}\item[{string \&\&}]{value,  }\item[{const char $\ast$}]{p }\end{DoxyParamCaption}) -\/$>$ std\+::ptrdiff\+\_\+t }



Definition at line \mbox{\hyperlink{convert_8h_source_l00579}{579}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_a00c98fe410dfc13b00832ecf0293eac9}\label{namespacekblib_a00c98fe410dfc13b00832ecf0293eac9}} 
\index{kblib@{kblib}!call\_each@{call\_each}}
\index{call\_each@{call\_each}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{call\_each()}{call\_each()}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename End\+It , typename... Params$>$ \\
constexpr auto kblib\+::call\+\_\+each (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{End\+It}]{last,  }\item[{Params \&\&...}]{params }\end{DoxyParamCaption}) -\/$>$ Input\+It \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l01603}{1603}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_af901ee65b94ee7e3a2537b6ea846ba28}\label{namespacekblib_af901ee65b94ee7e3a2537b6ea846ba28}} 
\index{kblib@{kblib}!chooseCategorical@{chooseCategorical}}
\index{chooseCategorical@{chooseCategorical}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{chooseCategorical()}{chooseCategorical()}}
{\footnotesize\ttfamily template$<$typename Array , typename Random\+Generator , typename freqtype  = double$>$ \\
constexpr auto kblib\+::choose\+Categorical (\begin{DoxyParamCaption}\item[{Array \&\&}]{cats,  }\item[{Random\+Generator \&}]{r }\end{DoxyParamCaption}) -\/$>$ decltype(cats.\+size()) \hspace{0.3cm}{\ttfamily [constexpr]}}



Given a categorical distribution cats, selects one category. 

\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000003}{Deprecated}}]std\+::discrete\+\_\+distribution provides the same functionality, with a worse name. Because it exists, there is no reason to use this function.\end{DoxyRefDesc}



\begin{DoxyParams}{Parameters}
{\em cats} & A sequence of category weights \\
\hline
{\em r} & A $<$random$>$-\/compatible Random\+Generator \\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000001}{Todo}}]Refactor to remove the ugly unreachable stuff. \end{DoxyRefDesc}


Definition at line \mbox{\hyperlink{random_8h_source_l00065}{65}} of file \mbox{\hyperlink{random_8h_source}{random.\+h}}.

\mbox{\Hypertarget{namespacekblib_a5f8aab063bc452b4a3c659a795bcd877}\label{namespacekblib_a5f8aab063bc452b4a3c659a795bcd877}} 
\index{kblib@{kblib}!coerce@{coerce}}
\index{coerce@{coerce}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{coerce()}{coerce()}}
{\footnotesize\ttfamily template$<$typename To , typename... Ts$>$ \\
auto kblib\+::coerce (\begin{DoxyParamCaption}\item[{const std\+::variant$<$ Ts... $>$ \&}]{v }\end{DoxyParamCaption}) -\/$>$ To }



Lexically converts the value of v (no matter its type) to type To. 

\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000004}{Deprecated}}]Use lexical\+\_\+coerce instead, as it more clearly expresses intent.\end{DoxyRefDesc}



\begin{DoxyParams}{Parameters}
{\em v} & A variant to coerce. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
To The type to coerce to. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{variant_8h_source_l00067}{67}} of file \mbox{\hyperlink{variant_8h_source}{variant.\+h}}.

\mbox{\Hypertarget{namespacekblib_a56615de712caf1b43a541f5387a4b847}\label{namespacekblib_a56615de712caf1b43a541f5387a4b847}} 
\index{kblib@{kblib}!concat@{concat}}
\index{concat@{concat}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{concat()}{concat()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename string  = std\+::string, typename F , typename... S$>$ \\
auto kblib\+::concat (\begin{DoxyParamCaption}\item[{F \&\&}]{f,  }\item[{S \&\&...}]{ins }\end{DoxyParamCaption}) -\/$>$ string }



Returns a string consisting of the concatenation of all arguments. 

Arithmetic types are first converted by calling std\+::to\+\_\+string.


\begin{DoxyParams}{Parameters}
{\em f} & The first argument to concatenate. \\
\hline
{\em ins} & Any number of arguments to concatenate onto f. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
string A string containing the concatenated values of all the arguments. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00305}{305}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_abf1c606d3818a88fc90e6a264711c671}\label{namespacekblib_abf1c606d3818a88fc90e6a264711c671}} 
\index{kblib@{kblib}!concat@{concat}}
\index{concat@{concat}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{concat()}{concat()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename string  = std\+::string, typename str $>$ \\
auto kblib\+::concat (\begin{DoxyParamCaption}\item[{std\+::initializer\+\_\+list$<$ str $>$}]{ins }\end{DoxyParamCaption}) -\/$>$ string }



Returns a string consisting of the concatenation of all elements of an initializer list. 


\begin{DoxyParams}{Parameters}
{\em ins} & A series of values to concatenate together. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
string A string containing the concatenated values of all the arguments. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00319}{319}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a639f719064a3ea44cd586faac94ac012}\label{namespacekblib_a639f719064a3ea44cd586faac94ac012}} 
\index{kblib@{kblib}!construct\_from\_range@{construct\_from\_range}}
\index{construct\_from\_range@{construct\_from\_range}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{construct\_from\_range()}{construct\_from\_range()}}
{\footnotesize\ttfamily template$<$typename Container , typename Range $>$ \\
constexpr auto kblib\+::construct\+\_\+from\+\_\+range (\begin{DoxyParamCaption}\item[{Range \&\&}]{r }\end{DoxyParamCaption}) -\/$>$ Container \hspace{0.3cm}{\ttfamily [constexpr]}}



Allows for constructing a container of a specified type from a range object. Copy elision means that this does not result in any extra copies. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Container} & The container type to construct an object of. \\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em r} & The range to construct the returned container from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container Container\{begin(r), end(r)\}; 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{containers_8h_source_l00152}{152}} of file \mbox{\hyperlink{containers_8h_source}{containers.\+h}}.

\mbox{\Hypertarget{namespacekblib_a18d941bdcaa41e86334ca14ffa954b28}\label{namespacekblib_a18d941bdcaa41e86334ca14ffa954b28}} 
\index{kblib@{kblib}!consumer@{consumer}}
\index{consumer@{consumer}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{consumer()}{consumer()}}
{\footnotesize\ttfamily template$<$typename F $>$ \\
auto kblib\+::consumer (\begin{DoxyParamCaption}\item[{F}]{f }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{classkblib_1_1consume__iterator}{consume\+\_\+iterator}}$<$F$>$ }



Creates a \mbox{\hyperlink{classkblib_1_1consume__iterator}{consume\+\_\+iterator}} of deduced type F. 

This could be a deduction guide, if kblib didn\textquotesingle{}t also support C++14. Thus, the old style is used for compatibility.


\begin{DoxyParams}{Parameters}
{\em f} & A functor to call on assignment. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
consume\+\_\+iterator$<$\+F$>$ 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{iterators_8h_source_l01614}{1614}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_a0188bc62243d7008096fd565fb6b2e83}\label{namespacekblib_a0188bc62243d7008096fd565fb6b2e83}} 
\index{kblib@{kblib}!contains@{contains}}
\index{contains@{contains}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{contains()}{contains()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Set , typename Value $>$ \\
constexpr auto kblib\+::contains (\begin{DoxyParamCaption}\item[{const Set \&}]{set,  }\item[{const Value \&}]{val }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}}$<$Set$>$\+::value, bool$>$ \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Determine if a range contains a value. 



Definition at line \mbox{\hyperlink{algorithm_8h_source_l01063}{1063}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a049d0a38a218a1d7cf786ea8f01f2073}\label{namespacekblib_a049d0a38a218a1d7cf786ea8f01f2073}} 
\index{kblib@{kblib}!contains@{contains}}
\index{contains@{contains}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{contains()}{contains()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename Value $>$ \\
constexpr auto kblib\+::contains (\begin{DoxyParamCaption}\item[{Input\+It}]{begin,  }\item[{Input\+It}]{end,  }\item[{const Value \&}]{val }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It$>$\+::value, bool$>$ \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Determine if a range contains a value. 



Definition at line \mbox{\hyperlink{algorithm_8h_source_l01052}{1052}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a6de3ee39cfc6317455f5035a014d024c}\label{namespacekblib_a6de3ee39cfc6317455f5035a014d024c}} 
\index{kblib@{kblib}!contains\_any@{contains\_any}}
\index{contains\_any@{contains\_any}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{contains\_any()}{contains\_any()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename Range2 $>$ \\
constexpr auto kblib\+::contains\+\_\+any (\begin{DoxyParamCaption}\item[{Input\+It}]{begin,  }\item[{Input\+It}]{end,  }\item[{Range2 \&\&}]{needle }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It$>$\+::value                        and \mbox{\hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}}$<$Range2$>$\+::value,                    bool$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l01087}{1087}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a906cc73872a93e33b3ce8a3a66319012}\label{namespacekblib_a906cc73872a93e33b3ce8a3a66319012}} 
\index{kblib@{kblib}!contains\_any@{contains\_any}}
\index{contains\_any@{contains\_any}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{contains\_any()}{contains\_any()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename Input\+It1 , typename Input\+It2 $>$ \\
constexpr auto kblib\+::contains\+\_\+any (\begin{DoxyParamCaption}\item[{Input\+It1}]{begin,  }\item[{Input\+It1}]{end,  }\item[{Input\+It2}]{n\+\_\+begin,  }\item[{Input\+It2}]{n\+\_\+end }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It1$>$\+::value                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It2$>$\+::value,                    bool$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l01076}{1076}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab4a3305951b7977f071de23396e980bc}\label{namespacekblib_ab4a3305951b7977f071de23396e980bc}} 
\index{kblib@{kblib}!contains\_any@{contains\_any}}
\index{contains\_any@{contains\_any}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{contains\_any()}{contains\_any()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename Range1 , typename Range2 $>$ \\
constexpr auto kblib\+::contains\+\_\+any (\begin{DoxyParamCaption}\item[{Range1 \&\&}]{haystack,  }\item[{Range2 \&\&}]{needle }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}}$<$Range1$>$\+::value and \mbox{\hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}}$<$Range2$>$\+::value,                    bool$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l01098}{1098}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac912dd210d34963da9bd40a1a6296308}\label{namespacekblib_ac912dd210d34963da9bd40a1a6296308}} 
\index{kblib@{kblib}!copy@{copy}}
\index{copy@{copy}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{copy()}{copy()}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename End\+It , typename Output\+It $>$ \\
constexpr auto kblib\+::copy (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{End\+It}]{last,  }\item[{Output\+It}]{out }\end{DoxyParamCaption}) -\/$>$ Output\+It \hspace{0.3cm}{\ttfamily [constexpr]}}



Copies all elements of \mbox{[}{\ttfamily first}, {\ttfamily last}) to out. It also allows for a sentinel end iterator. 

\begin{DoxyRemark}{Remarks}
This function is {\ttfamily constexpr} in C++14.
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the input range \\
\hline
{\em last} & The end of the input range \\
\hline
{\em out} & The beginning of the output range \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Output\+It An iterator to past the last element written 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l01322}{1322}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a5e6f2b40f2b5e649d70df34e5bcc03fe}\label{namespacekblib_a5e6f2b40f2b5e649d70df34e5bcc03fe}} 
\index{kblib@{kblib}!copy\_if@{copy\_if}}
\index{copy\_if@{copy\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{copy\_if()}{copy\_if()}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename End\+It , typename Output\+It , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::copy\+\_\+if (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{End\+It}]{last,  }\item[{Output\+It}]{out,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ Output\+It \hspace{0.3cm}{\ttfamily [constexpr]}}



Copies those elements of \mbox{[}{\ttfamily first}, {\ttfamily last}) which satisfy pred to out. It also allows for a sentinel end iterator. 

\begin{DoxyRemark}{Remarks}
This function is {\ttfamily constexpr} in C++14.
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the input range \\
\hline
{\em last} & The end of the input range \\
\hline
{\em out} & The beginning of the output range \\
\hline
{\em pred} & The predicate to apply \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Output\+It An iterator to past the last element written 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l01343}{1343}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a428621582602281bc8643b3e6830e2d4}\label{namespacekblib_a428621582602281bc8643b3e6830e2d4}} 
\index{kblib@{kblib}!copy\_n@{copy\_n}}
\index{copy\_n@{copy\_n}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{copy\_n()}{copy\_n()}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename Size , typename Output\+It $>$ \\
constexpr auto kblib\+::copy\+\_\+n (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Size}]{count,  }\item[{Output\+It}]{out }\end{DoxyParamCaption}) -\/$>$ Output\+It \hspace{0.3cm}{\ttfamily [constexpr]}}



Copies all elements of \mbox{[}{\ttfamily first}, {\ttfamily std\+::advance(first, n)}) to out. 

\begin{DoxyRemark}{Remarks}
This function is {\ttfamily constexpr} in C++14.
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the input range. \\
\hline
{\em count} & The number of elements in the input range. \\
\hline
{\em out} & The output range. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Output\+It Output\+It An iterator to past the last element written 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l01365}{1365}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab3f36a456830c5c88673a6df70828978}\label{namespacekblib_ab3f36a456830c5c88673a6df70828978}} 
\index{kblib@{kblib}!copy\_n\_if@{copy\_n\_if}}
\index{copy\_n\_if@{copy\_n\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{copy\_n\_if()}{copy\_n\_if()}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename Size , typename Output\+It , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::copy\+\_\+n\+\_\+if (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Size}]{count,  }\item[{Output\+It}]{out,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ Output\+It \hspace{0.3cm}{\ttfamily [constexpr]}}



Copies those elements of \mbox{[}{\ttfamily first}, {\ttfamily std\+::advance(first, n)}) which satisfy pred to out. 

\begin{DoxyRemark}{Remarks}
This function is {\ttfamily constexpr} in C++14.
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the input range. \\
\hline
{\em count} & The number of elements in the input range. \\
\hline
{\em out} & The output range. \\
\hline
{\em pred} & The predicate to apply. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Output\+It Output\+It An iterator to past the last element written 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l01386}{1386}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab5e75c9314c76b12efd507259206a546}\label{namespacekblib_ab5e75c9314c76b12efd507259206a546}} 
\index{kblib@{kblib}!count\_digits@{count\_digits}}
\index{count\_digits@{count\_digits}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{count\_digits()}{count\_digits()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Number $>$ \\
constexpr auto kblib\+::count\+\_\+digits (\begin{DoxyParamCaption}\item[{Number}]{val }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$std\+::is\+\_\+floating\+\_\+point$<$Number$>$\+::value, int$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Calculates the number of decimal digits needed to represent a number, plus one for negative numbers. 

Calculates the number of decimal digits needed to represent a number.


\begin{DoxyParams}{Parameters}
{\em val} & The number to be checked. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
int The number of digits needed to represent a number. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{format_8h_source_l00050}{50}} of file \mbox{\hyperlink{format_8h_source}{format.\+h}}.

\mbox{\Hypertarget{namespacekblib_a490acb8189530823cb6150afff35fc1c}\label{namespacekblib_a490acb8189530823cb6150afff35fc1c}} 
\index{kblib@{kblib}!count\_digits@{count\_digits}}
\index{count\_digits@{count\_digits}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{count\_digits()}{count\_digits()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Number $>$ \\
constexpr auto kblib\+::count\+\_\+digits (\begin{DoxyParamCaption}\item[{Number}]{val,  }\item[{int}]{base }\end{DoxyParamCaption}) -\/$>$ int \hspace{0.3cm}{\ttfamily [constexpr]}}



Calculates the number of digits needed to represent a number in a given base, plus one for negative numbers. 


\begin{DoxyParams}{Parameters}
{\em val} & The number to be checked. \\
\hline
{\em base} & The base to be used for calculation. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
int The number of digits needed to represent a number. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{format_8h_source_l00107}{107}} of file \mbox{\hyperlink{format_8h_source}{format.\+h}}.

\mbox{\Hypertarget{namespacekblib_a459982020db617ac2a1dbd2c3e2345ea}\label{namespacekblib_a459982020db617ac2a1dbd2c3e2345ea}} 
\index{kblib@{kblib}!counting\_back\_inserter@{counting\_back\_inserter}}
\index{counting\_back\_inserter@{counting\_back\_inserter}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{counting\_back\_inserter()}{counting\_back\_inserter()}}
{\footnotesize\ttfamily template$<$typename C $>$ \\
\mbox{\hyperlink{classkblib_1_1counting__back__insert__iterator}{counting\+\_\+back\+\_\+insert\+\_\+iterator}}$<$ C $>$ kblib\+::counting\+\_\+back\+\_\+inserter (\begin{DoxyParamCaption}\item[{C \&}]{c,  }\item[{std\+::size\+\_\+t}]{count = {\ttfamily 0} }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{iterators_8h_source_l00203}{203}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_a77828de35fa34ad16a59080a4cf5ca91}\label{namespacekblib_a77828de35fa34ad16a59080a4cf5ca91}} 
\index{kblib@{kblib}!cry\_enumerate@{cry\_enumerate}}
\index{cry\_enumerate@{cry\_enumerate}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{cry\_enumerate()}{cry\_enumerate()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Iter1 , typename Iter2 $>$ \\
auto kblib\+::cry\+\_\+enumerate (\begin{DoxyParamCaption}\item[{Iter1}]{begin,  }\item[{Iter2}]{end }\end{DoxyParamCaption}) -\/$>$ auto }



Definition at line \mbox{\hyperlink{iterators_8h_source_l01071}{1071}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_a679258c0b7423a4175f9ba848da99d96}\label{namespacekblib_a679258c0b7423a4175f9ba848da99d96}} 
\index{kblib@{kblib}!cry\_enumerate@{cry\_enumerate}}
\index{cry\_enumerate@{cry\_enumerate}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{cry\_enumerate()}{cry\_enumerate()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Range $>$ \\
auto kblib\+::cry\+\_\+enumerate (\begin{DoxyParamCaption}\item[{Range \&\&}]{range }\end{DoxyParamCaption}) -\/$>$ auto }

\begin{DoxyAuthor}{Author}
Krystian Stasiowski, killerbee 
\end{DoxyAuthor}
\begin{DoxyDate}{Date}
2020 
\end{DoxyDate}


Definition at line \mbox{\hyperlink{enumerate-contrib-cry_8h_source_l00186}{186}} of file \mbox{\hyperlink{enumerate-contrib-cry_8h_source}{enumerate-\/contrib-\/cry.\+h}}.

\mbox{\Hypertarget{namespacekblib_a87e300394cbdcefd780d0904b31f4c07}\label{namespacekblib_a87e300394cbdcefd780d0904b31f4c07}} 
\index{kblib@{kblib}!defer@{defer}}
\index{defer@{defer}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{defer()}{defer()}}
{\footnotesize\ttfamily template$<$typename F $>$ \\
auto kblib\+::defer (\begin{DoxyParamCaption}\item[{F}]{f }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{simple_8h_source_l00108}{108}} of file \mbox{\hyperlink{simple_8h_source}{simple.\+h}}.

\mbox{\Hypertarget{namespacekblib_abe1c06264c5e7d5b720416ff9d399fa6}\label{namespacekblib_abe1c06264c5e7d5b720416ff9d399fa6}} 
\index{kblib@{kblib}!div@{div}}
\index{div@{div}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{div()}{div()}}
{\footnotesize\ttfamily template$<$typename T , typename U $>$ \\
constexpr auto kblib\+::div (\begin{DoxyParamCaption}\item[{T}]{num,  }\item[{U}]{den }\end{DoxyParamCaption}) -\/$>$ decltype(std\+::div(num, den)) \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{stats_8h_source_l00048}{48}} of file \mbox{\hyperlink{stats_8h_source}{stats.\+h}}.

\mbox{\Hypertarget{namespacekblib_af9a5bf09da3c4820ffd701def6a6f6da}\label{namespacekblib_af9a5bf09da3c4820ffd701def6a6f6da}} 
\index{kblib@{kblib}!duration\_to\_str@{duration\_to\_str}}
\index{duration\_to\_str@{duration\_to\_str}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{duration\_to\_str()}{duration\_to\_str()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename Rep , typename Ratio , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{structkblib_1_1detail__units_1_1is__si__ratio}{detail\+\_\+units\+::is\+\_\+si\+\_\+ratio}}$<$ typename Ratio\+::type $>$\+::value $>$ $\ast$  = 0$>$ \\
auto kblib\+::duration\+\_\+to\+\_\+str (\begin{DoxyParamCaption}\item[{std\+::chrono\+::duration$<$ Rep, Ratio $>$ \&}]{d }\end{DoxyParamCaption}) -\/$>$ std\+::string }



Definition at line \mbox{\hyperlink{convert_8h_source_l00466}{466}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_adab181ff9f8850e2e5b6790a78d62cfc}\label{namespacekblib_adab181ff9f8850e2e5b6790a78d62cfc}} 
\index{kblib@{kblib}!duration\_to\_str@{duration\_to\_str}}
\index{duration\_to\_str@{duration\_to\_str}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{duration\_to\_str()}{duration\_to\_str()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename Rep $>$ \\
auto kblib\+::duration\+\_\+to\+\_\+str (\begin{DoxyParamCaption}\item[{std\+::chrono\+::duration$<$ Rep, std\+::ratio$<$ 3600 $>$ $>$}]{d }\end{DoxyParamCaption}) -\/$>$ std\+::string }



Definition at line \mbox{\hyperlink{convert_8h_source_l00492}{492}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_a9b4feeb3f624bef85e84024c3ffddb64}\label{namespacekblib_a9b4feeb3f624bef85e84024c3ffddb64}} 
\index{kblib@{kblib}!duration\_to\_str@{duration\_to\_str}}
\index{duration\_to\_str@{duration\_to\_str}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{duration\_to\_str()}{duration\_to\_str()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename Rep $>$ \\
auto kblib\+::duration\+\_\+to\+\_\+str (\begin{DoxyParamCaption}\item[{std\+::chrono\+::duration$<$ Rep, std\+::ratio$<$ 60 $>$ $>$}]{d }\end{DoxyParamCaption}) -\/$>$ std\+::string }



Definition at line \mbox{\hyperlink{convert_8h_source_l00487}{487}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_a536badb265b62a85034f48e0eac76a1b}\label{namespacekblib_a536badb265b62a85034f48e0eac76a1b}} 
\index{kblib@{kblib}!e@{e}}
\index{e@{e}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{e()}{e()}}
{\footnotesize\ttfamily template$<$typename T  = double$>$ \\
constexpr auto kblib\+::e (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ T \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{stats_8h_source_l00468}{468}} of file \mbox{\hyperlink{stats_8h_source}{stats.\+h}}.

\mbox{\Hypertarget{namespacekblib_a892c5cf646b0bd6fbe72caa7cd6afa3a}\label{namespacekblib_a892c5cf646b0bd6fbe72caa7cd6afa3a}} 
\index{kblib@{kblib}!eat\_space@{eat\_space}}
\index{eat\_space@{eat\_space}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{eat\_space()}{eat\_space()}}
{\footnotesize\ttfamily std\+::istream \& kblib\+::eat\+\_\+space (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{is }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Eat spaces, don\textquotesingle{}t eat an extra. 

\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000001}{Deprecated}}]Use std\+::ws instead.\end{DoxyRefDesc}



\begin{DoxyParams}{Parameters}
{\em is} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
std\+::istream 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{io_8h_source_l00173}{173}} of file \mbox{\hyperlink{io_8h_source}{io.\+h}}.

\mbox{\Hypertarget{namespacekblib_a09ae80b5cc20a7bcb10eda5d227c5b22}\label{namespacekblib_a09ae80b5cc20a7bcb10eda5d227c5b22}} 
\index{kblib@{kblib}!eat\_word@{eat\_word}}
\index{eat\_word@{eat\_word}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{eat\_word()}{eat\_word()}}
{\footnotesize\ttfamily auto kblib\+::eat\+\_\+word (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{is }\end{DoxyParamCaption}) -\/$>$ std\+::istream\& \hspace{0.3cm}{\ttfamily [inline]}}



Consume all non-\/spaces to first break, then eat that, too. 


\begin{DoxyParams}{Parameters}
{\em is} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
std\+::istream 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{io_8h_source_l00158}{158}} of file \mbox{\hyperlink{io_8h_source}{io.\+h}}.

\mbox{\Hypertarget{namespacekblib_a86b688283b8d950e84631a29f2351c77}\label{namespacekblib_a86b688283b8d950e84631a29f2351c77}} 
\index{kblib@{kblib}!ends\_with@{ends\_with}}
\index{ends\_with@{ends\_with}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{ends\_with()}{ends\_with()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily template$<$typename Bidir\+It1 , typename Bidir\+It2 , typename Binary\+Pred  = std\+::equal\+\_\+to$<$$>$$>$ \\
constexpr auto kblib\+::ends\+\_\+with (\begin{DoxyParamCaption}\item[{Bidir\+It1}]{begin1,  }\item[{Bidir\+It1}]{end1,  }\item[{Bidir\+It2}]{begin2,  }\item[{Bidir\+It2}]{end2,  }\item[{Binary\+Pred}]{pred = {\ttfamily \{\}} }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$         (\mbox{\hyperlink{namespacekblib_ab4a90d7f7bacba9a52aea362f42af35f}{is\+\_\+bidirectional\+\_\+iterator\+\_\+v}}$<$Bidir\+It1$>$                and \mbox{\hyperlink{namespacekblib_ab4a90d7f7bacba9a52aea362f42af35f}{is\+\_\+bidirectional\+\_\+iterator\+\_\+v}}$<$Bidir\+It2$>$)          and not (\mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v}}$<$                      Bidir\+It1$>$ and \mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v}}$<$Bidir\+It2$>$),         bool$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Checks if a given range ends with a particular subrange. 



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00781}{781}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a72257d3086cc368c6314f8013331915e}\label{namespacekblib_a72257d3086cc368c6314f8013331915e}} 
\index{kblib@{kblib}!ends\_with@{ends\_with}}
\index{ends\_with@{ends\_with}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{ends\_with()}{ends\_with()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily template$<$typename Random\+Access\+It1 , typename Random\+Access\+It2 , typename Binary\+Pred  = std\+::equal\+\_\+to$<$$>$$>$ \\
constexpr auto kblib\+::ends\+\_\+with (\begin{DoxyParamCaption}\item[{Random\+Access\+It1}]{begin1,  }\item[{Random\+Access\+It1}]{end1,  }\item[{Random\+Access\+It2}]{begin2,  }\item[{Random\+Access\+It2}]{end2,  }\item[{Binary\+Pred}]{pred = {\ttfamily \{\}} }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$         \mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v}}$<$             Random\+Access\+It1$>$ and \mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v}}$<$Random\+Access\+It2$>$,         bool$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Checks if a given range ends with a particular subrange. 



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00803}{803}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a19adf8b75cebbc58c92f2ade7a3f2e87}\label{namespacekblib_a19adf8b75cebbc58c92f2ade7a3f2e87}} 
\index{kblib@{kblib}!ends\_with@{ends\_with}}
\index{ends\_with@{ends\_with}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{ends\_with()}{ends\_with()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily auto kblib\+::ends\+\_\+with (\begin{DoxyParamCaption}\item[{std\+::string\+\_\+view}]{haystack,  }\item[{char}]{needle }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [inline]}}



Checks if a given string ends with a particular string. 


\begin{DoxyParams}{Parameters}
{\em haystack} & The string to be checked. \\
\hline
{\em needle} & The suffix to check for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
bool If haystack ends with needle. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00665}{665}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a7743f2e2f0dd3bd1542fa49368907206}\label{namespacekblib_a7743f2e2f0dd3bd1542fa49368907206}} 
\index{kblib@{kblib}!ends\_with@{ends\_with}}
\index{ends\_with@{ends\_with}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{ends\_with()}{ends\_with()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily auto kblib\+::ends\+\_\+with (\begin{DoxyParamCaption}\item[{std\+::string\+\_\+view}]{haystack,  }\item[{std\+::string\+\_\+view}]{needle }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [inline]}}



Checks if a given string ends with a particular string. 


\begin{DoxyParams}{Parameters}
{\em haystack} & The string to be checked. \\
\hline
{\em needle} & The suffix to check for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
bool If haystack ends with needle. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00651}{651}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a30574c8277c857984a6b967918ace252}\label{namespacekblib_a30574c8277c857984a6b967918ace252}} 
\index{kblib@{kblib}!enumerate@{enumerate}}
\index{enumerate@{enumerate}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{enumerate()}{enumerate()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename It , typename EIt $>$ \\
constexpr auto kblib\+::enumerate (\begin{DoxyParamCaption}\item[{It}]{begin,  }\item[{EIt}]{end }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{structkblib_1_1enumerate__t}{enumerate\+\_\+t}}$<$It, EIt$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Allow access to indexes while using range-\/based for loops. 


\begin{DoxyParams}{Parameters}
{\em begin,end} & The input range. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{enumerate-contrib-tw_8h_source_l00169}{169}} of file \mbox{\hyperlink{enumerate-contrib-tw_8h_source}{enumerate-\/contrib-\/tw.\+h}}.

\mbox{\Hypertarget{namespacekblib_af60faf67d8fc0ac030f8a2cb27514eed}\label{namespacekblib_af60faf67d8fc0ac030f8a2cb27514eed}} 
\index{kblib@{kblib}!enumerate@{enumerate}}
\index{enumerate@{enumerate}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{enumerate()}{enumerate()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Range $>$ \\
constexpr auto kblib\+::enumerate (\begin{DoxyParamCaption}\item[{Range \&\&}]{r }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{structkblib_1_1enumerate__t}{enumerate\+\_\+t}}$<$Range\&\&$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Allow access to indexes while using range-\/based for loops. Safe to use with rvalues. 


\begin{DoxyParams}{Parameters}
{\em r} & A range to iterate over. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{enumerate-contrib-tw_8h_source_l00159}{159}} of file \mbox{\hyperlink{enumerate-contrib-tw_8h_source}{enumerate-\/contrib-\/tw.\+h}}.

\mbox{\Hypertarget{namespacekblib_afbec3807c1be9d0aea88c620d673823c}\label{namespacekblib_afbec3807c1be9d0aea88c620d673823c}} 
\index{kblib@{kblib}!equal@{equal}}
\index{equal@{equal}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{equal()}{equal()}\hspace{0.1cm}{\footnotesize\ttfamily [1/6]}}
{\footnotesize\ttfamily template$<$class Input\+It1 , class Input\+It2 $>$ \\
constexpr auto kblib\+::equal (\begin{DoxyParamCaption}\item[{Input\+It1}]{first1,  }\item[{Input\+It1}]{last1,  }\item[{Input\+It2}]{first2 }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00960}{960}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a4b33292eab2082159622b9c062b665c0}\label{namespacekblib_a4b33292eab2082159622b9c062b665c0}} 
\index{kblib@{kblib}!equal@{equal}}
\index{equal@{equal}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{equal()}{equal()}\hspace{0.1cm}{\footnotesize\ttfamily [2/6]}}
{\footnotesize\ttfamily template$<$typename Input\+It1 , typename Input\+It2 , typename Binary\+Predicate , typename \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{kblib\+::enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+same$<$ Input\+It2, Binary\+Predicate $>$\+::value, int $>$  = 0$>$ \\
constexpr auto kblib\+::equal (\begin{DoxyParamCaption}\item[{Input\+It1}]{first1,  }\item[{Input\+It1}]{last1,  }\item[{Input\+It2}]{first2,  }\item[{Binary\+Predicate}]{p }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00973}{973}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a131eb5b6f49dfb59ab977a066d1869e7}\label{namespacekblib_a131eb5b6f49dfb59ab977a066d1869e7}} 
\index{kblib@{kblib}!equal@{equal}}
\index{equal@{equal}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{equal()}{equal()}\hspace{0.1cm}{\footnotesize\ttfamily [3/6]}}
{\footnotesize\ttfamily template$<$class Input\+It1 , class Input\+It2 , typename \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{kblib\+::enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+base\+\_\+of$<$ std\+::random\+\_\+access\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ Input\+It1 $>$\+::iterator\+\_\+category $>$\+::value or not std\+::is\+\_\+base\+\_\+of$<$ std\+::random\+\_\+access\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ Input\+It2 $>$\+::iterator\+\_\+category $>$\+::value, int $>$  = 0$>$ \\
constexpr auto kblib\+::equal (\begin{DoxyParamCaption}\item[{Input\+It1}]{first1,  }\item[{Input\+It1}]{last1,  }\item[{Input\+It2}]{first2,  }\item[{Input\+It2}]{last2 }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l01038}{1038}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_adbde434818524955250916aad1e9f2d5}\label{namespacekblib_adbde434818524955250916aad1e9f2d5}} 
\index{kblib@{kblib}!equal@{equal}}
\index{equal@{equal}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{equal()}{equal()}\hspace{0.1cm}{\footnotesize\ttfamily [4/6]}}
{\footnotesize\ttfamily template$<$typename Input\+It1 , typename Input\+It2 , typename Binary\+Predicate , typename \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{kblib\+::enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+base\+\_\+of$<$ std\+::random\+\_\+access\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ Input\+It1 $>$\+::iterator\+\_\+category $>$\+::value or not std\+::is\+\_\+base\+\_\+of$<$ std\+::random\+\_\+access\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ Input\+It2 $>$\+::iterator\+\_\+category $>$\+::value, int $>$  = 0$>$ \\
constexpr auto kblib\+::equal (\begin{DoxyParamCaption}\item[{Input\+It1}]{first1,  }\item[{Input\+It1}]{last1,  }\item[{Input\+It2}]{first2,  }\item[{Input\+It2}]{last2,  }\item[{Binary\+Predicate}]{p }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l01058}{1058}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_aa5cefb6480de50ffafc875fedc55538a}\label{namespacekblib_aa5cefb6480de50ffafc875fedc55538a}} 
\index{kblib@{kblib}!equal@{equal}}
\index{equal@{equal}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{equal()}{equal()}\hspace{0.1cm}{\footnotesize\ttfamily [5/6]}}
{\footnotesize\ttfamily template$<$class Random\+It1 , class Random\+It2 , typename \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{kblib\+::enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+base\+\_\+of$<$ std\+::random\+\_\+access\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ Random\+It1 $>$\+::iterator\+\_\+category $>$\+::value and std\+::is\+\_\+base\+\_\+of$<$ std\+::random\+\_\+access\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ Random\+It2 $>$\+::iterator\+\_\+category $>$\+::value, int $>$  = 0$>$ \\
constexpr auto kblib\+::equal (\begin{DoxyParamCaption}\item[{Random\+It1}]{first1,  }\item[{Random\+It1}]{last1,  }\item[{Random\+It2}]{first2,  }\item[{Random\+It2}]{last2 }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00992}{992}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a391794b2905afd47e4ba541643472d33}\label{namespacekblib_a391794b2905afd47e4ba541643472d33}} 
\index{kblib@{kblib}!equal@{equal}}
\index{equal@{equal}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{equal()}{equal()}\hspace{0.1cm}{\footnotesize\ttfamily [6/6]}}
{\footnotesize\ttfamily template$<$class Random\+It1 , class Random\+It2 , typename Binary\+Predicate , typename \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{kblib\+::enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+base\+\_\+of$<$ std\+::random\+\_\+access\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ Random\+It1 $>$\+::iterator\+\_\+category $>$\+::value and std\+::is\+\_\+base\+\_\+of$<$ std\+::random\+\_\+access\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ Random\+It2 $>$\+::iterator\+\_\+category $>$\+::value, int $>$  = 0$>$ \\
constexpr auto kblib\+::equal (\begin{DoxyParamCaption}\item[{Random\+It1}]{first1,  }\item[{Random\+It1}]{last1,  }\item[{Random\+It2}]{first2,  }\item[{Random\+It2}]{last2,  }\item[{Binary\+Predicate}]{p }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l01015}{1015}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a69f8d0752435e17b0c99ece2a5b599bb}\label{namespacekblib_a69f8d0752435e17b0c99ece2a5b599bb}} 
\index{kblib@{kblib}!equals@{equals}}
\index{equals@{equals}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{equals()}{equals()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Obj $>$ \\
constexpr auto kblib\+::equals (\begin{DoxyParamCaption}\item[{const Obj \&}]{a,  }\item[{const Obj \&}]{b }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Synthesize an equivalence relation from \texorpdfstring{$<$}{<}. 

\begin{DoxyReturn}{Returns}
bool Whether a is equivalent under \texorpdfstring{$<$}{<} to b. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00094}{94}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a20a98aa6b6876ad518d999ed85864a85}\label{namespacekblib_a20a98aa6b6876ad518d999ed85864a85}} 
\index{kblib@{kblib}!equals@{equals}}
\index{equals@{equals}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{equals()}{equals()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Obj , typename Compare $>$ \\
constexpr auto kblib\+::equals (\begin{DoxyParamCaption}\item[{const Obj \&}]{a,  }\item[{const Obj \&}]{b,  }\item[{Compare}]{comp }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Synthesize an equivalence relation from comp. 

\begin{DoxyReturn}{Returns}
bool Whether a is equivalent under comp to b. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00106}{106}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_aa760b40ea7f60976c66be6d77345317b}\label{namespacekblib_aa760b40ea7f60976c66be6d77345317b}} 
\index{kblib@{kblib}!erase@{erase}}
\index{erase@{erase}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{erase()}{erase()}}
{\footnotesize\ttfamily template$<$typename Container , typename Elem $>$ \\
constexpr auto kblib\+::erase (\begin{DoxyParamCaption}\item[{Container \&}]{c,  }\item[{const Elem \&}]{val }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Abbreviation of the erase-\/remove idiom as a free function. 


\begin{DoxyParams}{Parameters}
{\em c} & The container to erase from. \\
\hline
{\em val} & The value to remove. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00068}{68}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_aa1240cf764c5182f37ab5b5051f90b40}\label{namespacekblib_aa1240cf764c5182f37ab5b5051f90b40}} 
\index{kblib@{kblib}!erase\_if@{erase\_if}}
\index{erase\_if@{erase\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{erase\_if()}{erase\_if()}}
{\footnotesize\ttfamily template$<$typename Container , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::erase\+\_\+if (\begin{DoxyParamCaption}\item[{Container \&}]{c,  }\item[{Unary\+Predicate}]{p }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Abbreviation of the erase-\/remove idiom as a free function. 


\begin{DoxyParams}{Parameters}
{\em c} & The container to erase from. \\
\hline
{\em p} & Erase all elements on which p returns true. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00081}{81}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac0e93ddcc6d5c76947773411b4b1c324}\label{namespacekblib_ac0e93ddcc6d5c76947773411b4b1c324}} 
\index{kblib@{kblib}!escapify@{escapify}}
\index{escapify@{escapify}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{escapify()}{escapify()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily auto kblib\+::escapify (\begin{DoxyParamCaption}\item[{char}]{c }\end{DoxyParamCaption}) -\/$>$ std\+::string \hspace{0.3cm}{\ttfamily [inline]}}



Definition at line \mbox{\hyperlink{convert_8h_source_l00548}{548}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_adc6dd5988f5ae20b8c0538bd50bd3657}\label{namespacekblib_adc6dd5988f5ae20b8c0538bd50bd3657}} 
\index{kblib@{kblib}!escapify@{escapify}}
\index{escapify@{escapify}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{escapify()}{escapify()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename string $>$ \\
auto kblib\+::escapify (\begin{DoxyParamCaption}\item[{const string \&}]{value }\end{DoxyParamCaption}) -\/$>$ std\+::string }



Definition at line \mbox{\hyperlink{convert_8h_source_l00564}{564}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_adceb810a61acaa78f10a700d1618aad7}\label{namespacekblib_adceb810a61acaa78f10a700d1618aad7}} 
\index{kblib@{kblib}!etoi@{etoi}}
\index{etoi@{etoi}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{etoi()}{etoi()}}
{\footnotesize\ttfamily template$<$typename E , typename  = typename std\+::enable\+\_\+if$<$std\+::is\+\_\+enum$<$\+E$>$\+::value$>$\+::type$>$ \\
constexpr auto kblib\+::etoi (\begin{DoxyParamCaption}\item[{E}]{e }\end{DoxyParamCaption}) -\/$>$ auto \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{convert_8h_source_l00244}{244}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_a0c3f29dc7d19ffe01f977ce294ee537a}\label{namespacekblib_a0c3f29dc7d19ffe01f977ce294ee537a}} 
\index{kblib@{kblib}!exchange@{exchange}}
\index{exchange@{exchange}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{exchange()}{exchange()}}
{\footnotesize\ttfamily template$<$typename T , typename U  = T$>$ \\
constexpr auto kblib\+::exchange (\begin{DoxyParamCaption}\item[{T \&}]{obj,  }\item[{U \&\&}]{new\+\_\+value }\end{DoxyParamCaption}) -\/$>$ T \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00719}{719}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a92cc98441a6881da833d69dad234f8be}\label{namespacekblib_a92cc98441a6881da833d69dad234f8be}} 
\index{kblib@{kblib}!expect@{expect}}
\index{expect@{expect}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{expect()}{expect()}}
{\footnotesize\ttfamily template$<$typename CharT $>$ \\
auto kblib\+::expect (\begin{DoxyParamCaption}\item[{CharT}]{c }\end{DoxyParamCaption}) -\/$>$ auto }



Read a character from an input stream only if it equals c. Acts as a Formatted\+Input\+Operation, that is, leading whitespace is ignored. 



Definition at line \mbox{\hyperlink{io_8h_source_l00321}{321}} of file \mbox{\hyperlink{io_8h_source}{io.\+h}}.

\mbox{\Hypertarget{namespacekblib_a23d97429c2ea683b83b8223699b30c68}\label{namespacekblib_a23d97429c2ea683b83b8223699b30c68}} 
\index{kblib@{kblib}!fibonacci@{fibonacci}}
\index{fibonacci@{fibonacci}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fibonacci()}{fibonacci()}}
{\footnotesize\ttfamily template$<$typename U  = std\+::uintmax\+\_\+t$>$ \\
constexpr auto kblib\+::fibonacci (\begin{DoxyParamCaption}\item[{int}]{n }\end{DoxyParamCaption}) -\/$>$ U \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Compile-\/time table fibonacci function. 

\begin{DoxyPrecond}{Precondition}
n \texorpdfstring{$<$}{<}= \mbox{\hyperlink{namespacekblib_a90baddc76df99c83665b9fa3d45609e2}{calc\+\_\+fib\+\_\+size$<$\+U$>$()}}
\end{DoxyPrecond}
\begin{DoxyReturn}{Returns}
The nth fibonacci number. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stats_8h_source_l00177}{177}} of file \mbox{\hyperlink{stats_8h_source}{stats.\+h}}.

\mbox{\Hypertarget{namespacekblib_a5633a966716e66c8230d039c7615e393}\label{namespacekblib_a5633a966716e66c8230d039c7615e393}} 
\index{kblib@{kblib}!filg2@{filg2}}
\index{filg2@{filg2}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{filg2()}{filg2()}}
{\footnotesize\ttfamily constexpr auto kblib\+::filg2 (\begin{DoxyParamCaption}\item[{const std\+::bitset$<$ std\+::numeric\+\_\+limits$<$ std\+::uintmax\+\_\+t $>$\+::digits $>$}]{val }\end{DoxyParamCaption}) -\/$>$ int \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Floored integer binary logarithm. Returns floor(lb(val)). 

Returns the number of significant bits in the given integer. 

Definition at line \mbox{\hyperlink{simple_8h_source_l00166}{166}} of file \mbox{\hyperlink{simple_8h_source}{simple.\+h}}.

\mbox{\Hypertarget{namespacekblib_abc7f2ec97efdee8640fe38e73fe1fdad}\label{namespacekblib_abc7f2ec97efdee8640fe38e73fe1fdad}} 
\index{kblib@{kblib}!find@{find}}
\index{find@{find}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find()}{find()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename End\+It , typename Elem $>$ \\
constexpr auto kblib\+::find (\begin{DoxyParamCaption}\item[{Forward\+It}]{begin,  }\item[{End\+It}]{end,  }\item[{const Elem \&}]{value }\end{DoxyParamCaption}) -\/$>$ Forward\+It \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Finds a value in range \mbox{[}begin, end). If not found, returns end. It also allows for a sentinel end iterator. 


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to search in \\
\hline
{\em value} & The value to search for \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
It Either the position of the found value, or end if not found 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00290}{290}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a7cb44e374b0d5edb7ebce7e1a4e9862d}\label{namespacekblib_a7cb44e374b0d5edb7ebce7e1a4e9862d}} 
\index{kblib@{kblib}!find@{find}}
\index{find@{find}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find()}{find()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename End\+It , typename Elem , typename Comp $>$ \\
constexpr auto kblib\+::find (\begin{DoxyParamCaption}\item[{Forward\+It}]{begin,  }\item[{End\+It}]{end,  }\item[{const Elem \&}]{value,  }\item[{Comp \&\&}]{comp }\end{DoxyParamCaption}) -\/$>$ Forward\+It \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Finds a value in range \mbox{[}begin, end). If not found, returns end. It also allows for a sentinel end iterator. 


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to search in \\
\hline
{\em value} & The value to search for \\
\hline
{\em comp} & The comparison function \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
It Either the position of the found value, or end if not found 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00309}{309}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a4b49eacc73a9295677cb08d9b7892ff6}\label{namespacekblib_a4b49eacc73a9295677cb08d9b7892ff6}} 
\index{kblib@{kblib}!find\_if@{find\_if}}
\index{find\_if@{find\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_if()}{find\_if()}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename End\+It , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::find\+\_\+if (\begin{DoxyParamCaption}\item[{Forward\+It}]{begin,  }\item[{End\+It}]{end,  }\item[{Unary\+Predicate \&\&}]{pred }\end{DoxyParamCaption}) -\/$>$ Forward\+It \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Finds the first value in range \mbox{[}begin, end) for which pred returns true. If not found, returns end. It also allows for a sentinel end iterator. 


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to search in \\
\hline
{\em pred} & The predicate to scan with \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
It Either the position of the found value, or end if not found 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00327}{327}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac30ce90c5b10639c0243952248897b51}\label{namespacekblib_ac30ce90c5b10639c0243952248897b51}} 
\index{kblib@{kblib}!find\_if\_not@{find\_if\_not}}
\index{find\_if\_not@{find\_if\_not}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_if\_not()}{find\_if\_not()}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename End\+It , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::find\+\_\+if\+\_\+not (\begin{DoxyParamCaption}\item[{Forward\+It}]{begin,  }\item[{End\+It}]{end,  }\item[{Unary\+Predicate \&\&}]{pred }\end{DoxyParamCaption}) -\/$>$ Forward\+It \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Finds the first value in range \mbox{[}begin, end) for which pred returns false. If not found, returns end. It also allows for a sentinel end iterator. 


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to search in \\
\hline
{\em pred} & The predicate to scan with \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
It Either the position of the found value, or end if not found 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00346}{346}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a4b840bb625a22f5dfd674050892d3be1}\label{namespacekblib_a4b840bb625a22f5dfd674050892d3be1}} 
\index{kblib@{kblib}!find\_in@{find\_in}}
\index{find\_in@{find\_in}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_in()}{find\_in()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Container , typename T $>$ \\
constexpr auto kblib\+::find\+\_\+in (\begin{DoxyParamCaption}\item[{const Container \&}]{c,  }\item[{const T \&}]{value }\end{DoxyParamCaption}) -\/$>$ size\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Find the first element in c equal to v and return the position. 

Equivalent to find\+\_\+in(begin(c), end(c), v)


\begin{DoxyParams}{Parameters}
{\em c} & The container to search. \\
\hline
{\em value} & The value to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
size\+\_\+t The position of the element found, or size(c) if not. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00559}{559}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a6cc206fcdb4a68b8cb6e393b5039a575}\label{namespacekblib_a6cc206fcdb4a68b8cb6e393b5039a575}} 
\index{kblib@{kblib}!find\_in@{find\_in}}
\index{find\_in@{find\_in}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_in()}{find\_in()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename End\+It , typename Elem $>$ \\
constexpr auto kblib\+::find\+\_\+in (\begin{DoxyParamCaption}\item[{Forward\+It}]{begin,  }\item[{End\+It}]{end,  }\item[{const Elem \&}]{value }\end{DoxyParamCaption}) -\/$>$ size\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Find the offset of the first ocurrence of v in a range from the beginning. It also allows for a sentinel end iterator. 


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to search in \\
\hline
{\em value} & The value to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
size\+\_\+t The offset from begin of the first element equal to v, or distance(begin, end) if not found. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00458}{458}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab9d81bc7ce57c24888b9eebce31b596c}\label{namespacekblib_ab9d81bc7ce57c24888b9eebce31b596c}} 
\index{kblib@{kblib}!find\_in\_if@{find\_in\_if}}
\index{find\_in\_if@{find\_in\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_in\_if()}{find\_in\_if()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Container , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::find\+\_\+in\+\_\+if (\begin{DoxyParamCaption}\item[{const Container \&}]{c,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ size\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Find the first element in c for which p returns true and return the position. 

Equivalent to find\+\_\+in\+\_\+if(begin(c), end(c), p)


\begin{DoxyParams}{Parameters}
{\em c} & The container to search in. \\
\hline
{\em pred} & The predicate to check. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
size\+\_\+t The position of the element found, or size(c) if not. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00585}{585}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae565c2bd3542ecc900319508c4204a0d}\label{namespacekblib_ae565c2bd3542ecc900319508c4204a0d}} 
\index{kblib@{kblib}!find\_in\_if@{find\_in\_if}}
\index{find\_in\_if@{find\_in\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_in\_if()}{find\_in\_if()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename End\+It , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::find\+\_\+in\+\_\+if (\begin{DoxyParamCaption}\item[{Forward\+It}]{begin,  }\item[{End\+It}]{end,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ size\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Find the offset of the first element for which p returns true. It also allows for a sentinel end iterator. 


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to search in \\
\hline
{\em pred} & The predicate to check. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
size\+\_\+t The offset from begin of the element found, or distance(begin, end) if not. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00474}{474}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_ad66766d83405b85f422894329c1b0762}\label{namespacekblib_ad66766d83405b85f422894329c1b0762}} 
\index{kblib@{kblib}!find\_in\_if\_not@{find\_in\_if\_not}}
\index{find\_in\_if\_not@{find\_in\_if\_not}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_in\_if\_not()}{find\_in\_if\_not()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Container , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::find\+\_\+in\+\_\+if\+\_\+not (\begin{DoxyParamCaption}\item[{const Container \&}]{c,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ size\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Find the first element in c for which p returns false and return the position. 

Equivalent to find\+\_\+in\+\_\+if\+\_\+not(begin(c), end(c), p)


\begin{DoxyParams}{Parameters}
{\em c} & The container to search in. \\
\hline
{\em pred} & The predicate to check. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
size\+\_\+t The position of the element found, or size(c) if not. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00607}{607}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a104b402a896c7ba42eeb1ba513961cb6}\label{namespacekblib_a104b402a896c7ba42eeb1ba513961cb6}} 
\index{kblib@{kblib}!find\_in\_if\_not@{find\_in\_if\_not}}
\index{find\_in\_if\_not@{find\_in\_if\_not}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_in\_if\_not()}{find\_in\_if\_not()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename End\+It , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::find\+\_\+in\+\_\+if\+\_\+not (\begin{DoxyParamCaption}\item[{Forward\+It}]{begin,  }\item[{End\+It}]{end,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ size\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Find the offset of the first element for which p returns false. It also allows for a sentinel end iterator. 


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to search in \\
\hline
{\em pred} & The predicate to check. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
size\+\_\+t The offset from begin of the element found, or distance(begin, end) if not. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00490}{490}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a985430339c0a2e1100d0c77faa47806f}\label{namespacekblib_a985430339c0a2e1100d0c77faa47806f}} 
\index{kblib@{kblib}!find\_last@{find\_last}}
\index{find\_last@{find\_last}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_last()}{find\_last()}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename End\+It , typename Elem $>$ \\
constexpr auto kblib\+::find\+\_\+last (\begin{DoxyParamCaption}\item[{Forward\+It}]{begin,  }\item[{End\+It}]{end,  }\item[{const Elem \&}]{value }\end{DoxyParamCaption}) -\/$>$ Forward\+It \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Searches a range for the last occurence of a match, and returns an iterator to it. It also allows for a sentinel end iterator. 


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to search in \\
\hline
{\em value} & The value to find \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
It Iterator to the last element equal to v, or end if no such element. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00366}{366}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_afdfe60b4f1096a9f60d07cdfb4b5e427}\label{namespacekblib_afdfe60b4f1096a9f60d07cdfb4b5e427}} 
\index{kblib@{kblib}!find\_last\_if@{find\_last\_if}}
\index{find\_last\_if@{find\_last\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_last\_if()}{find\_last\_if()}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename End\+It , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::find\+\_\+last\+\_\+if (\begin{DoxyParamCaption}\item[{Forward\+It}]{begin,  }\item[{End\+It}]{end,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ Forward\+It \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Searches a range for the last element on which a predicate returns true. It also allows for a sentinel end iterator. 


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to search in \\
\hline
{\em pred} & The predicate for comparison \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
It Iterator to the last element for which p returned true, or end if no such element. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00396}{396}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a1782641d7170a2ef57145e460fe059be}\label{namespacekblib_a1782641d7170a2ef57145e460fe059be}} 
\index{kblib@{kblib}!find\_last\_if\_not@{find\_last\_if\_not}}
\index{find\_last\_if\_not@{find\_last\_if\_not}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_last\_if\_not()}{find\_last\_if\_not()}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename End\+It , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::find\+\_\+last\+\_\+if\+\_\+not (\begin{DoxyParamCaption}\item[{Forward\+It}]{begin,  }\item[{End\+It}]{end,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ Forward\+It \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Searches a range for the last element on which a predicate returns false. It also allows for a sentinel end iterator. 


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to search in \\
\hline
{\em pred} & The predicate for comparison \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
It Iterator to the last element for which p returned false, or end if no such element. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00427}{427}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a01ea69026c0c1b4403fd1f9e37bdf104}\label{namespacekblib_a01ea69026c0c1b4403fd1f9e37bdf104}} 
\index{kblib@{kblib}!find\_last\_in@{find\_last\_in}}
\index{find\_last\_in@{find\_last\_in}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_last\_in()}{find\_last\_in()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Container , typename T $>$ \\
constexpr auto kblib\+::find\+\_\+last\+\_\+in (\begin{DoxyParamCaption}\item[{const Container \&}]{c,  }\item[{const T \&}]{value }\end{DoxyParamCaption}) -\/$>$ size\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Find the last element in c equal to v and return the position. 

Equivalent to find\+\_\+last\+\_\+in(std\+::begin(c), std\+::end(c), v)


\begin{DoxyParams}{Parameters}
{\em c} & The container to search. \\
\hline
{\em value} & The value to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
size\+\_\+t The position of the element found, or \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{c.\+size()}} if not. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00645}{645}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_add03c5bc4490749865e16dff9030aa24}\label{namespacekblib_add03c5bc4490749865e16dff9030aa24}} 
\index{kblib@{kblib}!find\_last\_in@{find\_last\_in}}
\index{find\_last\_in@{find\_last\_in}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_last\_in()}{find\_last\_in()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename End\+It , typename Elem $>$ \\
constexpr auto kblib\+::find\+\_\+last\+\_\+in (\begin{DoxyParamCaption}\item[{Forward\+It}]{begin,  }\item[{End\+It}]{end,  }\item[{const Elem \&}]{value }\end{DoxyParamCaption}) -\/$>$ size\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Find the offset of the last ocurrence of v in a range from the beginning. It also allows for a sentinel end iterator. 


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to search in \\
\hline
{\em value} & The value to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
size\+\_\+t The offset from begin of the element found, or distance(begin, end) if not. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00510}{510}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a5cf3311b51778825d242cc19ceacc619}\label{namespacekblib_a5cf3311b51778825d242cc19ceacc619}} 
\index{kblib@{kblib}!find\_last\_in\_if@{find\_last\_in\_if}}
\index{find\_last\_in\_if@{find\_last\_in\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_last\_in\_if()}{find\_last\_in\_if()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Container , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::find\+\_\+last\+\_\+in\+\_\+if (\begin{DoxyParamCaption}\item[{const Container \&}]{c,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ size\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Find the last element in c for which p returns true and return the position. 

Equivalent to find\+\_\+last\+\_\+in\+\_\+if(std\+::begin(c), std\+::end(c), p)


\begin{DoxyParams}{Parameters}
{\em c} & The container to search in. \\
\hline
{\em pred} & The predicate to check. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
size\+\_\+t The position of the element found, or \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{c.\+size()}} if not. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00664}{664}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a45b776be68227a2b794c1345a3101df7}\label{namespacekblib_a45b776be68227a2b794c1345a3101df7}} 
\index{kblib@{kblib}!find\_last\_in\_if@{find\_last\_in\_if}}
\index{find\_last\_in\_if@{find\_last\_in\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_last\_in\_if()}{find\_last\_in\_if()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename End\+It , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::find\+\_\+last\+\_\+in\+\_\+if (\begin{DoxyParamCaption}\item[{Forward\+It}]{begin,  }\item[{End\+It}]{end,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ size\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to search in\\
\hline
{\em begin,end} & The range to search in \\
\hline
{\em pred} & The predicate to check. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
size\+\_\+t The offset from begin of the element found, or distance(begin, end) if not. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00525}{525}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a7e88ca2c2fc0f9ee0a4731224ba4e0e4}\label{namespacekblib_a7e88ca2c2fc0f9ee0a4731224ba4e0e4}} 
\index{kblib@{kblib}!find\_last\_in\_if\_not@{find\_last\_in\_if\_not}}
\index{find\_last\_in\_if\_not@{find\_last\_in\_if\_not}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_last\_in\_if\_not()}{find\_last\_in\_if\_not()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Container , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::find\+\_\+last\+\_\+in\+\_\+if\+\_\+not (\begin{DoxyParamCaption}\item[{const Container \&}]{c,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ size\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Find the last element in c for which p returns true and return the position. 

Equivalent to find\+\_\+last\+\_\+in\+\_\+if\+\_\+not(std\+::begin(c), std\+::end(c), p)


\begin{DoxyParams}{Parameters}
{\em c} & The container to search in. \\
\hline
{\em pred} & The predicate to check. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
size\+\_\+t The position of the element found, or \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{c.\+size()}} if not. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00686}{686}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a9b56a7bab2714ec861e909a930030cb6}\label{namespacekblib_a9b56a7bab2714ec861e909a930030cb6}} 
\index{kblib@{kblib}!find\_last\_in\_if\_not@{find\_last\_in\_if\_not}}
\index{find\_last\_in\_if\_not@{find\_last\_in\_if\_not}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_last\_in\_if\_not()}{find\_last\_in\_if\_not()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename End\+It , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::find\+\_\+last\+\_\+in\+\_\+if\+\_\+not (\begin{DoxyParamCaption}\item[{Forward\+It}]{begin,  }\item[{End\+It}]{end,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ size\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Find the offset of the last element for which p returns false. It also allows for a sentinel end iterator. 


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to search in \\
\hline
{\em pred} & The predicate to check. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
size\+\_\+t The offset from begin of the element found, or distance(begin, end) if not. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00541}{541}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a85ee751e6068e1e86e93ef1cb34f2d1f}\label{namespacekblib_a85ee751e6068e1e86e93ef1cb34f2d1f}} 
\index{kblib@{kblib}!find\_match@{find\_match}}
\index{find\_match@{find\_match}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_match()}{find\_match()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename Binary\+Predicate  = std\+::equal\+\_\+to$<$$>$$>$ \\
constexpr auto kblib\+::find\+\_\+match (\begin{DoxyParamCaption}\item[{Input\+It1}]{begin1,  }\item[{End\+It1}]{end1,  }\item[{Input\+It2}]{begin2,  }\item[{Binary\+Predicate}]{cmp }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It1$>$\+::value                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It2$>$\+::value                        and \mbox{\hyperlink{structkblib_1_1fakestd_1_1is__invocable}{is\+\_\+invocable}}$<$Binary\+Predicate, decltype($\ast$begin1),                                         decltype($\ast$begin2)$>$\+::value,                    std\+::pair$<$Input\+It1, Input\+It2$>$$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00701}{701}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae8e1b4d2193bbc1a7bd04aca85cdfe36}\label{namespacekblib_ae8e1b4d2193bbc1a7bd04aca85cdfe36}} 
\index{kblib@{kblib}!find\_match@{find\_match}}
\index{find\_match@{find\_match}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{find\_match()}{find\_match()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename End\+It2 , typename Binary\+Predicate  = std\+::equal\+\_\+to$<$$>$$>$ \\
constexpr auto kblib\+::find\+\_\+match (\begin{DoxyParamCaption}\item[{Input\+It1}]{begin1,  }\item[{End\+It1}]{end1,  }\item[{Input\+It2}]{begin2,  }\item[{End\+It2}]{end2,  }\item[{Binary\+Predicate}]{cmp }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It1$>$\+::value                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It2$>$\+::value                        and \mbox{\hyperlink{structkblib_1_1fakestd_1_1is__invocable}{is\+\_\+invocable}}$<$Binary\+Predicate, decltype($\ast$begin1),                                         decltype($\ast$begin2)$>$\+::value,                    std\+::pair$<$Input\+It1, Input\+It2$>$$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00717}{717}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a19c27b7a705228b485f3eec2a0605ba6}\label{namespacekblib_a19c27b7a705228b485f3eec2a0605ba6}} 
\index{kblib@{kblib}!first\_result@{first\_result}}
\index{first\_result@{first\_result}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{first\_result()}{first\_result()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename End\+It , typename T , typename Unary\+Transform $>$ \\
constexpr auto kblib\+::first\+\_\+result (\begin{DoxyParamCaption}\item[{Input\+It}]{begin,  }\item[{End\+It}]{end,  }\item[{T}]{def,  }\item[{Unary\+Transform}]{op }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It$>$\+::value,                    std\+::decay\+\_\+t$<$decltype(op($\ast$begin))$>$$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00821}{821}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a243dd4c94b862837cbcb3a21fc7c7850}\label{namespacekblib_a243dd4c94b862837cbcb3a21fc7c7850}} 
\index{kblib@{kblib}!first\_result@{first\_result}}
\index{first\_result@{first\_result}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{first\_result()}{first\_result()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename End\+It2 , typename T , typename Binary\+Transform $>$ \\
constexpr auto kblib\+::first\+\_\+result (\begin{DoxyParamCaption}\item[{Input\+It1}]{begin1,  }\item[{End\+It1}]{end1,  }\item[{Input\+It2}]{begin2,  }\item[{End\+It2}]{end2,  }\item[{T}]{def,  }\item[{Binary\+Transform}]{op }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It1$>$\+::value                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It2$>$\+::value,                    std\+::decay\+\_\+t$<$decltype(op($\ast$begin1, $\ast$begin2))$>$$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00851}{851}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a303620c746944b847de94534da396cd0}\label{namespacekblib_a303620c746944b847de94534da396cd0}} 
\index{kblib@{kblib}!first\_result@{first\_result}}
\index{first\_result@{first\_result}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{first\_result()}{first\_result()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename T , typename Binary\+Transform $>$ \\
constexpr auto kblib\+::first\+\_\+result (\begin{DoxyParamCaption}\item[{Input\+It1}]{begin1,  }\item[{End\+It1}]{end1,  }\item[{Input\+It2}]{begin2,  }\item[{T}]{def,  }\item[{Binary\+Transform}]{op }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It1$>$\+::value                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It2$>$\+::value,                    std\+::decay\+\_\+t$<$decltype(op($\ast$begin1, $\ast$begin2))$>$$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00835}{835}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a50dd5af1197cf9f384b53fe0ea30eaf8}\label{namespacekblib_a50dd5af1197cf9f384b53fe0ea30eaf8}} 
\index{kblib@{kblib}!first\_result\_if@{first\_result\_if}}
\index{first\_result\_if@{first\_result\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{first\_result\_if()}{first\_result\_if()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename End\+It , typename T , typename Unary\+Transform , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::first\+\_\+result\+\_\+if (\begin{DoxyParamCaption}\item[{Input\+It}]{begin,  }\item[{End\+It}]{end,  }\item[{T}]{def,  }\item[{Unary\+Transform}]{op,  }\item[{Unary\+Predicate}]{ch }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It$>$\+::value, decltype(op($\ast$begin))$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00868}{868}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a416854a4e20de3e66dc94a591b8fd709}\label{namespacekblib_a416854a4e20de3e66dc94a591b8fd709}} 
\index{kblib@{kblib}!first\_result\_if@{first\_result\_if}}
\index{first\_result\_if@{first\_result\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{first\_result\_if()}{first\_result\_if()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename End\+It2 , typename T , typename Binary\+Transform , typename Binary\+Predicate $>$ \\
constexpr auto kblib\+::first\+\_\+result\+\_\+if (\begin{DoxyParamCaption}\item[{Input\+It1}]{begin1,  }\item[{End\+It1}]{end1,  }\item[{Input\+It2}]{begin2,  }\item[{End\+It2}]{end2,  }\item[{T}]{def,  }\item[{Binary\+Transform}]{op,  }\item[{Binary\+Predicate}]{ch }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It1$>$\+::value                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It2$>$\+::value,                    decltype(op($\ast$begin1, $\ast$begin2))$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00898}{898}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_afb43a77bbb2f42381d1c241d96fd01ba}\label{namespacekblib_afb43a77bbb2f42381d1c241d96fd01ba}} 
\index{kblib@{kblib}!first\_result\_if@{first\_result\_if}}
\index{first\_result\_if@{first\_result\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{first\_result\_if()}{first\_result\_if()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename T , typename Binary\+Transform , typename Binary\+Predicate $>$ \\
constexpr auto kblib\+::first\+\_\+result\+\_\+if (\begin{DoxyParamCaption}\item[{Input\+It1}]{begin1,  }\item[{End\+It1}]{end1,  }\item[{Input\+It2}]{begin2,  }\item[{T}]{def,  }\item[{Binary\+Transform}]{op,  }\item[{Binary\+Predicate}]{ch }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It1$>$\+::value                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It2$>$\+::value,                    decltype(op($\ast$begin1, $\ast$begin2))$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00881}{881}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_aedb8bdb7d08d66f5896e94ea33e93ebb}\label{namespacekblib_aedb8bdb7d08d66f5896e94ea33e93ebb}} 
\index{kblib@{kblib}!first\_result\_opt@{first\_result\_opt}}
\index{first\_result\_opt@{first\_result\_opt}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{first\_result\_opt()}{first\_result\_opt()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename End\+It , typename T , typename Unary\+Transform $>$ \\
constexpr auto kblib\+::first\+\_\+result\+\_\+opt (\begin{DoxyParamCaption}\item[{Input\+It}]{begin,  }\item[{End\+It}]{end,  }\item[{T}]{def,  }\item[{Unary\+Transform}]{op }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It$>$\+::value,                    std\+::decay\+\_\+t$<$decltype(op($\ast$begin))$>$$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00920}{920}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a726214edec4457179f1a8261c9987a28}\label{namespacekblib_a726214edec4457179f1a8261c9987a28}} 
\index{kblib@{kblib}!first\_result\_opt@{first\_result\_opt}}
\index{first\_result\_opt@{first\_result\_opt}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{first\_result\_opt()}{first\_result\_opt()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename End\+It2 , typename T , typename Binary\+Transform $>$ \\
constexpr auto kblib\+::first\+\_\+result\+\_\+opt (\begin{DoxyParamCaption}\item[{Input\+It1}]{begin1,  }\item[{End\+It1}]{end1,  }\item[{Input\+It2}]{begin2,  }\item[{End\+It2}]{end2,  }\item[{T}]{def,  }\item[{Binary\+Transform}]{op }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It1$>$\+::value                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It2$>$\+::value,                    std\+::decay\+\_\+t$<$decltype(op($\ast$begin1, $\ast$begin2))$>$$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00950}{950}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae59131730a066402fc31c3ace96fcc59}\label{namespacekblib_ae59131730a066402fc31c3ace96fcc59}} 
\index{kblib@{kblib}!first\_result\_opt@{first\_result\_opt}}
\index{first\_result\_opt@{first\_result\_opt}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{first\_result\_opt()}{first\_result\_opt()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename T , typename Binary\+Transform $>$ \\
constexpr auto kblib\+::first\+\_\+result\+\_\+opt (\begin{DoxyParamCaption}\item[{Input\+It1}]{begin1,  }\item[{End\+It1}]{end1,  }\item[{Input\+It2}]{begin2,  }\item[{T}]{def,  }\item[{Binary\+Transform}]{op }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It1$>$\+::value                        and \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It2$>$\+::value,                    std\+::decay\+\_\+t$<$decltype(op($\ast$begin1, $\ast$begin2))$>$$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00934}{934}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac4b288376b8a5fcf8fceba9e426a45fa}\label{namespacekblib_ac4b288376b8a5fcf8fceba9e426a45fa}} 
\index{kblib@{kblib}!flip@{flip}}
\index{flip@{flip}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{flip()}{flip()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Binary\+Operation $>$ \\
constexpr auto kblib\+::flip (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ auto \hspace{0.3cm}{\ttfamily [constexpr]}}



Transforms a stateless binary operation into one which takes reversed arguments. 

For example, \mbox{\hyperlink{namespacekblib_ac4b288376b8a5fcf8fceba9e426a45fa}{kblib\+::flip$<$std\+::minus$<$$>$$>$()}} returns a function object which subtracts its first argument from its second.


\begin{DoxyTemplParams}{Template Parameters}
{\em Binary\+Operation} & The operation to reverse. \\
\hline
\end{DoxyTemplParams}


Definition at line \mbox{\hyperlink{simple_8h_source_l00122}{122}} of file \mbox{\hyperlink{simple_8h_source}{simple.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab2c94cb864bd6de586bfd329e515df32}\label{namespacekblib_ab2c94cb864bd6de586bfd329e515df32}} 
\index{kblib@{kblib}!flip@{flip}}
\index{flip@{flip}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{flip()}{flip()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Binary\+Operation $>$ \\
constexpr auto kblib\+::flip (\begin{DoxyParamCaption}\item[{Binary\+Operation}]{op }\end{DoxyParamCaption}) -\/$>$ auto \hspace{0.3cm}{\ttfamily [constexpr]}}



Transforms a binary operation into one which takes reversed arguments. 

For example, \mbox{\hyperlink{namespacekblib_ac4b288376b8a5fcf8fceba9e426a45fa}{kblib\+::flip}}(std\+::minus$<$$>$\{\}) returns a function object which subtracts its first argument from its second.


\begin{DoxyParams}{Parameters}
{\em op} & The operation to reverse. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{simple_8h_source_l00138}{138}} of file \mbox{\hyperlink{simple_8h_source}{simple.\+h}}.

\mbox{\Hypertarget{namespacekblib_a8d67d64eac176d35844a629ff0aeacdf}\label{namespacekblib_a8d67d64eac176d35844a629ff0aeacdf}} 
\index{kblib@{kblib}!FNV32a@{FNV32a}}
\index{FNV32a@{FNV32a}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{FNV32a()}{FNV32a()}}
{\footnotesize\ttfamily constexpr auto kblib\+::\+FNV32a (\begin{DoxyParamCaption}\item[{std\+::string\+\_\+view}]{s,  }\item[{std\+::uint32\+\_\+t}]{hval = {\ttfamily \mbox{\hyperlink{structkblib_1_1fnv_1_1fnv__offset}{fnv\+::fnv\+\_\+offset}}$<$std\+:\+:uint32\+\_\+t$>$\+:\+:value} }\end{DoxyParamCaption}) -\/$>$ std\+::uint32\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



A standard FNV32a hash function, for string\+\_\+views. 


\begin{DoxyParams}{Parameters}
{\em s} & The data to hash. \\
\hline
{\em hval} & The initial value for the hash accumulator. Pass in another hash value to create a hash of the concatenation of the two ranges. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
std\+::uint32\+\_\+t The FNV32a hash of the input range. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{hash_8h_source_l00194}{194}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_a79a2361911fe2007b9867f8514fbcdea}\label{namespacekblib_a79a2361911fe2007b9867f8514fbcdea}} 
\index{kblib@{kblib}!FNV32a\_a@{FNV32a\_a}}
\index{FNV32a\_a@{FNV32a\_a}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{FNV32a\_a()}{FNV32a\_a()}}
{\footnotesize\ttfamily template$<$std\+::size\+\_\+t N$>$ \\
constexpr auto kblib\+::\+FNV32a\+\_\+a (\begin{DoxyParamCaption}\item[{const char(\&)}]{s\mbox{[}\+N\mbox{]},  }\item[{std\+::uint32\+\_\+t}]{hval = {\ttfamily \mbox{\hyperlink{structkblib_1_1fnv_1_1fnv__offset}{fnv\+::fnv\+\_\+offset}}$<$std\+:\+:uint32\+\_\+t$>$\+:\+:value} }\end{DoxyParamCaption}) -\/$>$ std\+::uint32\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



A standard FNV32a hash function, for raw character arrays, such as string literals. 


\begin{DoxyParams}{Parameters}
{\em s} & The data to hash. \\
\hline
{\em hval} & The initial value for the hash accumulator. Pass in another hash value to create a hash of the concatenation of the two ranges. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Hash\+Int The FNV32a hash of the input range. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{hash_8h_source_l00233}{233}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_a6a4c0dd6b1f34b0b9ff7e71230e68750}\label{namespacekblib_a6a4c0dd6b1f34b0b9ff7e71230e68750}} 
\index{kblib@{kblib}!FNV32a\_s@{FNV32a\_s}}
\index{FNV32a\_s@{FNV32a\_s}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{FNV32a\_s()}{FNV32a\_s()}}
{\footnotesize\ttfamily constexpr auto kblib\+::\+FNV32a\+\_\+s (\begin{DoxyParamCaption}\item[{const char $\ast$}]{begin,  }\item[{std\+::size\+\_\+t}]{length,  }\item[{uint32\+\_\+t}]{hval = {\ttfamily \mbox{\hyperlink{structkblib_1_1fnv_1_1fnv__offset}{fnv\+::fnv\+\_\+offset}}$<$std\+:\+:uint32\+\_\+t$>$\+:\+:value} }\end{DoxyParamCaption}) -\/$>$ std\+::uint32\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{hash_8h_source_l00245}{245}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_a74d22c0d4828fcf909655abd919bf003}\label{namespacekblib_a74d22c0d4828fcf909655abd919bf003}} 
\index{kblib@{kblib}!FNVa@{FNVa}}
\index{FNVa@{FNVa}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{FNVa()}{FNVa()}}
{\footnotesize\ttfamily template$<$typename Hash\+Int , typename Span $>$ \\
constexpr auto kblib\+::\+FNVa (\begin{DoxyParamCaption}\item[{Span \&\&}]{s,  }\item[{Hash\+Int}]{hval = {\ttfamily \mbox{\hyperlink{structkblib_1_1fnv_1_1fnv__offset}{fnv\+::fnv\+\_\+offset}}$<$HashInt$>$\+:\+:value} }\end{DoxyParamCaption}) -\/$>$ Hash\+Int \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



A templatized generic FNVa hash function. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Hash\+Int} & The unsigned integer type to use as the hash result. Must be either std\+::uint32\+\_\+t or std\+::uint64\+\_\+t. \\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em s} & The data to hash. Any range-\/for-\/iterable span of char-\/like objects. \\
\hline
{\em hval} & The initial value for the hash accumulator. Pass in another hash value to create a hash of the concatenation of the two ranges. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Hash\+Int The FNVa hash of the input range. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{hash_8h_source_l00147}{147}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac550cfcd270e104a007c7b7a8fcad098}\label{namespacekblib_ac550cfcd270e104a007c7b7a8fcad098}} 
\index{kblib@{kblib}!FNVa\_a@{FNVa\_a}}
\index{FNVa\_a@{FNVa\_a}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{FNVa\_a()}{FNVa\_a()}}
{\footnotesize\ttfamily template$<$typename Hash\+Int , typename CharT , std\+::size\+\_\+t N$>$ \\
constexpr auto kblib\+::\+FNVa\+\_\+a (\begin{DoxyParamCaption}\item[{const CharT(\&)}]{s\mbox{[}\+N\mbox{]},  }\item[{Hash\+Int}]{hval = {\ttfamily \mbox{\hyperlink{structkblib_1_1fnv_1_1fnv__offset}{fnv\+::fnv\+\_\+offset}}$<$HashInt$>$\+:\+:value} }\end{DoxyParamCaption}) -\/$>$ Hash\+Int \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



A templatized FNVa hash function, for raw character arrays, such as string literals. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Hash\+Int} & The unsigned integer type to use as the hash result. Must be either std\+::uint32\+\_\+t or std\+::uint64\+\_\+t. \\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em s} & The data to hash. A raw array of char-\/like objects. \\
\hline
{\em hval} & The initial value for the hash accumulator. Pass in another hash value to create a hash of the concatenation of the two ranges. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Hash\+Int The FNVa hash of the input range. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{hash_8h_source_l00173}{173}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab67d69cffbdb7f096d195c345df0752b}\label{namespacekblib_ab67d69cffbdb7f096d195c345df0752b}} 
\index{kblib@{kblib}!FNVa\_s@{FNVa\_s}}
\index{FNVa\_s@{FNVa\_s}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{FNVa\_s()}{FNVa\_s()}}
{\footnotesize\ttfamily template$<$typename Hash\+Int $>$ \\
constexpr auto kblib\+::\+FNVa\+\_\+s (\begin{DoxyParamCaption}\item[{const char $\ast$}]{begin,  }\item[{std\+::size\+\_\+t}]{length,  }\item[{Hash\+Int}]{hval = {\ttfamily \mbox{\hyperlink{structkblib_1_1fnv_1_1fnv__offset}{fnv\+::fnv\+\_\+offset}}$<$HashInt$>$\+:\+:value} }\end{DoxyParamCaption}) -\/$>$ Hash\+Int \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{hash_8h_source_l00208}{208}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_a5a3199d9020a07ae387f60a6ef61393b}\label{namespacekblib_a5a3199d9020a07ae387f60a6ef61393b}} 
\index{kblib@{kblib}!for\_each@{for\_each}}
\index{for\_each@{for\_each}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{for\_each()}{for\_each()}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename End\+It , typename Forward\+It2 , typename Binary\+Function $>$ \\
constexpr auto kblib\+::for\+\_\+each (\begin{DoxyParamCaption}\item[{Forward\+It}]{first,  }\item[{End\+It}]{last,  }\item[{Forward\+It2}]{second,  }\item[{Binary\+Function}]{f }\end{DoxyParamCaption}) -\/$>$ Binary\+Function \hspace{0.3cm}{\ttfamily [constexpr]}}



Applies a binary operation to each pair of corresponding elements in two input ranges. It also allows for a sentinel end iterator. 

In the style of $<$algorithm$>$ algorithms, the second range is simply assumed to be at least as large as the first.


\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the first input range. \\
\hline
{\em last} & The end of the first input range. \\
\hline
{\em second} & The beginning of the second input range. \\
\hline
{\em f} & The operation to apply. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Binary\+Function f 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l01280}{1280}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a645d4e1338c54d720c7cb1f8f90a0e59}\label{namespacekblib_a645d4e1338c54d720c7cb1f8f90a0e59}} 
\index{kblib@{kblib}!for\_each\_n@{for\_each\_n}}
\index{for\_each\_n@{for\_each\_n}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{for\_each\_n()}{for\_each\_n()}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename Forward\+It2 , typename Size , typename Binary\+Function $>$ \\
constexpr auto kblib\+::for\+\_\+each\+\_\+n (\begin{DoxyParamCaption}\item[{Forward\+It}]{first,  }\item[{Size}]{n,  }\item[{Forward\+It2}]{second,  }\item[{Binary\+Function}]{f }\end{DoxyParamCaption}) -\/$>$ std\+::pair$<$Forward\+It, Forward\+It2$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Applies a binary operation to each pair of corresponding elements in two input ranges. 


\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the first input range. \\
\hline
{\em n} & The number of elements to operate on in each input range. \\
\hline
{\em second} & The beginning of the second input range. \\
\hline
{\em f} & The operation to apply. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
std\+::pair$<$\+Forward\+It, Forward\+It2$>$ Equivalent to {\ttfamily \{std\+::advance(first, n), std\+::advance(second, n)\}} 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l01301}{1301}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a0796644f9c5f55c99e916160cc085319}\label{namespacekblib_a0796644f9c5f55c99e916160cc085319}} 
\index{kblib@{kblib}!force\_shrink\_to\_fit@{force\_shrink\_to\_fit}}
\index{force\_shrink\_to\_fit@{force\_shrink\_to\_fit}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{force\_shrink\_to\_fit()}{force\_shrink\_to\_fit()}}
{\footnotesize\ttfamily template$<$typename V $>$ \\
auto kblib\+::force\+\_\+shrink\+\_\+to\+\_\+fit (\begin{DoxyParamCaption}\item[{V \&}]{vec }\end{DoxyParamCaption}) -\/$>$ void }



std\+::vector\+::shrink\+\_\+to\+\_\+fit is non-\/binding, which means that there is no guaranteed way to shrink a vector via its API. This function is a roundabout way of doing that without relying on the sanity of the implementation (except that it assumes that a vector won\textquotesingle{}t significantly over-\/allocate on sized construction). 

This function explicitly constructs a new vector and moves into it, before overwriting the old vector with the new one, meaning that the vector is forced to forget its capacity.

This function provides the strong exception guarantee.


\begin{DoxyParams}{Parameters}
{\em vec} & The vector to force-\/shrink. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{containers_8h_source_l00116}{116}} of file \mbox{\hyperlink{containers_8h_source}{containers.\+h}}.

\mbox{\Hypertarget{namespacekblib_accd006c8702a96a58797a630927f1e84}\label{namespacekblib_accd006c8702a96a58797a630927f1e84}} 
\index{kblib@{kblib}!fromStr@{fromStr}}
\index{fromStr@{fromStr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fromStr()}{fromStr()}\hspace{0.1cm}{\footnotesize\ttfamily [1/15]}}
{\footnotesize\ttfamily template$<$typename To , typename \+\_\+ $>$ \\
auto kblib\+::from\+Str (\begin{DoxyParamCaption}\item[{const char $\ast$}]{val,  }\item[{const char $\ast$}]{type = {\ttfamily typeid(To).name()},  }\item[{\+\_\+}]{ = {\ttfamily 0} }\end{DoxyParamCaption}) -\/$>$ To }



Definition at line \mbox{\hyperlink{convert_8h_source_l00736}{736}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_aa4f711c2235a07748d06db315f0390fd}\label{namespacekblib_aa4f711c2235a07748d06db315f0390fd}} 
\index{kblib@{kblib}!fromStr@{fromStr}}
\index{fromStr@{fromStr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fromStr()}{fromStr()}\hspace{0.1cm}{\footnotesize\ttfamily [2/15]}}
{\footnotesize\ttfamily template$<$typename To , std\+::size\+\_\+t N$>$ \\
auto kblib\+::from\+Str (\begin{DoxyParamCaption}\item[{const char(\&)}]{val\mbox{[}\+N\mbox{]},  }\item[{const char $\ast$}]{type = {\ttfamily typeid(To).name()} }\end{DoxyParamCaption}) -\/$>$ To }



Definition at line \mbox{\hyperlink{convert_8h_source_l00729}{729}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_a8f83f373124cb00091260e5bab6c4b60}\label{namespacekblib_a8f83f373124cb00091260e5bab6c4b60}} 
\index{kblib@{kblib}!fromStr@{fromStr}}
\index{fromStr@{fromStr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fromStr()}{fromStr()}\hspace{0.1cm}{\footnotesize\ttfamily [3/15]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
auto kblib\+::from\+Str (\begin{DoxyParamCaption}\item[{const icu\+::\+Unicode\+String \&}]{val,  }\item[{const char $\ast$}]{type = {\ttfamily typeid(T).name()} }\end{DoxyParamCaption}) -\/$>$ T }



Reencodes val to UTF-\/8 and then converts it to T using the primary overload. 


\begin{DoxyParams}{Parameters}
{\em val} & A string holding data to convert. \\
\hline
{\em type} & A type name to be used in error messages. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T The converted value. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{icu_8h_source_l00149}{149}} of file \mbox{\hyperlink{icu_8h_source}{icu.\+h}}.

\mbox{\Hypertarget{namespacekblib_a57f578123119b93875bef04cfe49f65e}\label{namespacekblib_a57f578123119b93875bef04cfe49f65e}} 
\index{kblib@{kblib}!fromStr@{fromStr}}
\index{fromStr@{fromStr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fromStr()}{fromStr()}\hspace{0.1cm}{\footnotesize\ttfamily [4/15]}}
{\footnotesize\ttfamily template$<$$>$ \\
auto kblib\+::from\+Str (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{val,  }\item[{const char $\ast$}]{ }\end{DoxyParamCaption}) -\/$>$ std\+::string \hspace{0.3cm}{\ttfamily [inline]}}



Definition at line \mbox{\hyperlink{convert_8h_source_l00641}{641}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_a0edc4804a0cef00e0ee38e0545a5c185}\label{namespacekblib_a0edc4804a0cef00e0ee38e0545a5c185}} 
\index{kblib@{kblib}!fromStr@{fromStr}}
\index{fromStr@{fromStr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fromStr()}{fromStr()}\hspace{0.1cm}{\footnotesize\ttfamily [5/15]}}
{\footnotesize\ttfamily template$<$$>$ \\
auto kblib\+::from\+Str (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{val,  }\item[{const char $\ast$}]{ }\end{DoxyParamCaption}) -\/$>$ std\+::string\+\_\+view \hspace{0.3cm}{\ttfamily [inline]}}



Definition at line \mbox{\hyperlink{convert_8h_source_l00688}{688}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_a7c6f875ac9139f22c86dd6dd4d9065b1}\label{namespacekblib_a7c6f875ac9139f22c86dd6dd4d9065b1}} 
\index{kblib@{kblib}!fromStr@{fromStr}}
\index{fromStr@{fromStr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fromStr()}{fromStr()}\hspace{0.1cm}{\footnotesize\ttfamily [6/15]}}
{\footnotesize\ttfamily template$<$$>$ \\
auto kblib\+::from\+Str (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{val,  }\item[{const char $\ast$}]{type }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [inline]}}



Definition at line \mbox{\hyperlink{convert_8h_source_l00646}{646}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_adcf60327cd3273416aee1f4e21c545a2}\label{namespacekblib_adcf60327cd3273416aee1f4e21c545a2}} 
\index{kblib@{kblib}!fromStr@{fromStr}}
\index{fromStr@{fromStr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fromStr()}{fromStr()}\hspace{0.1cm}{\footnotesize\ttfamily [7/15]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
auto kblib\+::from\+Str (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{val,  }\item[{const char $\ast$}]{type = {\ttfamily typeid(T).name()} }\end{DoxyParamCaption}) -\/$>$ T }



Definition at line \mbox{\hyperlink{convert_8h_source_l00630}{630}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_aadea0d5dfda041cebdee25a03cb326b7}\label{namespacekblib_aadea0d5dfda041cebdee25a03cb326b7}} 
\index{kblib@{kblib}!fromStr@{fromStr}}
\index{fromStr@{fromStr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fromStr()}{fromStr()}\hspace{0.1cm}{\footnotesize\ttfamily [8/15]}}
{\footnotesize\ttfamily template$<$$>$ \\
auto kblib\+::from\+Str (\begin{DoxyParamCaption}\item[{std\+::string \&\&}]{val,  }\item[{const char $\ast$}]{type }\end{DoxyParamCaption}) -\/$>$  std\+::string\+\_\+view=delete\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [delete]}}



Definition at line \mbox{\hyperlink{convert_8h_source_l00669}{669}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_a853a2017ce132aff49da11dc89c0d4f8}\label{namespacekblib_a853a2017ce132aff49da11dc89c0d4f8}} 
\index{kblib@{kblib}!fromStr@{fromStr}}
\index{fromStr@{fromStr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fromStr()}{fromStr()}\hspace{0.1cm}{\footnotesize\ttfamily [9/15]}}
{\footnotesize\ttfamily template$<$$>$ \\
auto kblib\+::from\+Str (\begin{DoxyParamCaption}\item[{std\+::string \&\&}]{val,  }\item[{const char $\ast$}]{ }\end{DoxyParamCaption}) -\/$>$ std\+::string \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [delete]}}



Definition at line \mbox{\hyperlink{convert_8h_source_l00669}{669}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_aa4044dd6c31f3ad46403c7c160f117f7}\label{namespacekblib_aa4044dd6c31f3ad46403c7c160f117f7}} 
\index{kblib@{kblib}!fromStr@{fromStr}}
\index{fromStr@{fromStr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fromStr()}{fromStr()}\hspace{0.1cm}{\footnotesize\ttfamily [10/15]}}
{\footnotesize\ttfamily template$<$$>$ \\
auto kblib\+::from\+Str (\begin{DoxyParamCaption}\item[{std\+::string \&\&}]{val,  }\item[{const char $\ast$}]{type }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [delete]}}



Definition at line \mbox{\hyperlink{convert_8h_source_l00674}{674}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_a8a395da2f21ab1bf9f7753dafa31024b}\label{namespacekblib_a8a395da2f21ab1bf9f7753dafa31024b}} 
\index{kblib@{kblib}!fromStr@{fromStr}}
\index{fromStr@{fromStr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fromStr()}{fromStr()}\hspace{0.1cm}{\footnotesize\ttfamily [11/15]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
auto kblib\+::from\+Str (\begin{DoxyParamCaption}\item[{std\+::string \&\&}]{val,  }\item[{const char $\ast$}]{type = {\ttfamily typeid(T).name()} }\end{DoxyParamCaption}) -\/$>$ T }



Definition at line \mbox{\hyperlink{convert_8h_source_l00658}{658}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_accb73432c51f1abcb19600cbc74c76b3}\label{namespacekblib_accb73432c51f1abcb19600cbc74c76b3}} 
\index{kblib@{kblib}!fromStr@{fromStr}}
\index{fromStr@{fromStr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fromStr()}{fromStr()}\hspace{0.1cm}{\footnotesize\ttfamily [12/15]}}
{\footnotesize\ttfamily template$<$$>$ \\
auto kblib\+::from\+Str (\begin{DoxyParamCaption}\item[{std\+::string\+\_\+view}]{val,  }\item[{const char $\ast$}]{ }\end{DoxyParamCaption}) -\/$>$ std\+::string \hspace{0.3cm}{\ttfamily [inline]}}



Definition at line \mbox{\hyperlink{convert_8h_source_l00712}{712}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_a0d43c9471efd41988e7fe3803ebe9920}\label{namespacekblib_a0d43c9471efd41988e7fe3803ebe9920}} 
\index{kblib@{kblib}!fromStr@{fromStr}}
\index{fromStr@{fromStr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fromStr()}{fromStr()}\hspace{0.1cm}{\footnotesize\ttfamily [13/15]}}
{\footnotesize\ttfamily template$<$$>$ \\
auto kblib\+::from\+Str (\begin{DoxyParamCaption}\item[{std\+::string\+\_\+view}]{val,  }\item[{const char $\ast$}]{ }\end{DoxyParamCaption}) -\/$>$ std\+::string\+\_\+view \hspace{0.3cm}{\ttfamily [inline]}}



Definition at line \mbox{\hyperlink{convert_8h_source_l00707}{707}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_af325be078a70629608c96f77cde6f957}\label{namespacekblib_af325be078a70629608c96f77cde6f957}} 
\index{kblib@{kblib}!fromStr@{fromStr}}
\index{fromStr@{fromStr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fromStr()}{fromStr()}\hspace{0.1cm}{\footnotesize\ttfamily [14/15]}}
{\footnotesize\ttfamily template$<$$>$ \\
auto kblib\+::from\+Str (\begin{DoxyParamCaption}\item[{std\+::string\+\_\+view}]{val,  }\item[{const char $\ast$}]{type }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [inline]}}



Definition at line \mbox{\hyperlink{convert_8h_source_l00717}{717}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_aa7bf83ca8ddfe3ca539cb91272916b49}\label{namespacekblib_aa7bf83ca8ddfe3ca539cb91272916b49}} 
\index{kblib@{kblib}!fromStr@{fromStr}}
\index{fromStr@{fromStr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fromStr()}{fromStr()}\hspace{0.1cm}{\footnotesize\ttfamily [15/15]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
auto kblib\+::from\+Str (\begin{DoxyParamCaption}\item[{std\+::string\+\_\+view}]{val,  }\item[{const char $\ast$}]{type = {\ttfamily typeid(T).name()} }\end{DoxyParamCaption}) -\/$>$ T }



Definition at line \mbox{\hyperlink{convert_8h_source_l00696}{696}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_aca43a53354402a1f1352b0da9ac32fee}\label{namespacekblib_aca43a53354402a1f1352b0da9ac32fee}} 
\index{kblib@{kblib}!fromUTF32@{fromUTF32}}
\index{fromUTF32@{fromUTF32}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fromUTF32()}{fromUTF32()}}
{\footnotesize\ttfamily template$<$typename string $>$ \\
auto kblib\+::from\+UTF32 (\begin{DoxyParamCaption}\item[{string}]{s }\end{DoxyParamCaption}) -\/$>$ icu\+::\+Unicode\+String }



Converts a UTF-\/32 string into a Unicode\+String. 

This functionality is present in ICU, and is only provided here for consistency with the above.


\begin{DoxyParams}{Parameters}
{\em s} & The string to convert. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
icu\+::\+Unicode\+String The re-\/encoded result. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{icu_8h_source_l00099}{99}} of file \mbox{\hyperlink{icu_8h_source}{icu.\+h}}.

\mbox{\Hypertarget{namespacekblib_aa90b416613cc12193d5e239ab10ca8a5}\label{namespacekblib_aa90b416613cc12193d5e239ab10ca8a5}} 
\index{kblib@{kblib}!fromUTF8@{fromUTF8}}
\index{fromUTF8@{fromUTF8}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{fromUTF8()}{fromUTF8()}}
{\footnotesize\ttfamily template$<$typename string $>$ \\
auto kblib\+::from\+UTF8 (\begin{DoxyParamCaption}\item[{string}]{s }\end{DoxyParamCaption}) -\/$>$ icu\+::\+Unicode\+String }



Convert a UTF-\/8 string into a Unicode\+String. 

This functionality is present in ICU, and is only provided here for consistency with the above.


\begin{DoxyParams}{Parameters}
{\em s} & The string to convert. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
icu\+::\+Unicode\+String The re-\/encoded result. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{icu_8h_source_l00067}{67}} of file \mbox{\hyperlink{icu_8h_source}{icu.\+h}}.

\mbox{\Hypertarget{namespacekblib_a33f20e37682017226d1d7a7128915ea5}\label{namespacekblib_a33f20e37682017226d1d7a7128915ea5}} 
\index{kblib@{kblib}!generate@{generate}}
\index{generate@{generate}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{generate()}{generate()}}
{\footnotesize\ttfamily template$<$typename Output\+It , typename End\+It , typename Generator $>$ \\
constexpr auto kblib\+::generate (\begin{DoxyParamCaption}\item[{Output\+It}]{first,  }\item[{End\+It}]{last,  }\item[{Generator}]{g }\end{DoxyParamCaption}) -\/$>$ Output\+It \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Like std\+::generate except that it returns the output iterator at the end. It also allows for a sentinel end iterator. 


\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the ouput range. \\
\hline
{\em last} & The end of the output range. \\
\hline
{\em g} & A generator to repeatedly call and assign the return values to the elements of the output range. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Forward\+It The iterator pointing past the last element written. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l01545}{1545}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a44de39f5ab34ae1bf5b037eb11155caa}\label{namespacekblib_a44de39f5ab34ae1bf5b037eb11155caa}} 
\index{kblib@{kblib}!generate\_n@{generate\_n}}
\index{generate\_n@{generate\_n}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{generate\_n()}{generate\_n()}}
{\footnotesize\ttfamily template$<$typename Output\+It , typename Size , typename Generator $>$ \\
constexpr auto kblib\+::generate\+\_\+n (\begin{DoxyParamCaption}\item[{Output\+It}]{first,  }\item[{Size}]{count,  }\item[{Generator}]{g }\end{DoxyParamCaption}) -\/$>$ Output\+It \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Like std\+::generate\+\_\+n except that it is constexpr. 


\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the ouput range. \\
\hline
{\em count} & The number of elements to generate. \\
\hline
{\em g} & A generator to repeatedly call and assign the return values to the elements of the output range. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Forward\+It The iterator pointing past the last element written. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l01565}{1565}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a41c0ca0fe1a53fd119fc343cf9a4040e}\label{namespacekblib_a41c0ca0fe1a53fd119fc343cf9a4040e}} 
\index{kblib@{kblib}!get@{get}}
\index{get@{get}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [1/8]}}
{\footnotesize\ttfamily template$<$std\+::size\+\_\+t I, typename T $>$ \\
auto kblib\+::get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classkblib_1_1enumeration}{enumeration}}$<$ T $>$ \&\&}]{e }\end{DoxyParamCaption}) -\/$>$ decltype(auto) }



Definition at line \mbox{\hyperlink{iterators_8h_source_l00834}{834}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_af291a0ebb9263d6588279eb0e379abc1}\label{namespacekblib_af291a0ebb9263d6588279eb0e379abc1}} 
\index{kblib@{kblib}!get@{get}}
\index{get@{get}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [2/8]}}
{\footnotesize\ttfamily template$<$std\+::size\+\_\+t I, typename... Types$>$ \\
auto kblib\+::get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structkblib_1_1punner}{punner}}$<$ Types... $>$ \&\&}]{p }\end{DoxyParamCaption}) -\/$>$ decltype(auto) \hspace{0.3cm}{\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{bits_8h_source_l00749}{749}} of file \mbox{\hyperlink{bits_8h_source}{bits.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac224d3445c7dba280beacefc67b7641b}\label{namespacekblib_ac224d3445c7dba280beacefc67b7641b}} 
\index{kblib@{kblib}!get@{get}}
\index{get@{get}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [3/8]}}
{\footnotesize\ttfamily template$<$std\+::size\+\_\+t I, typename... Types$>$ \\
auto kblib\+::get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structkblib_1_1punner}{punner}}$<$ Types... $>$ \&}]{p }\end{DoxyParamCaption}) -\/$>$ decltype(auto) \hspace{0.3cm}{\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{bits_8h_source_l00741}{741}} of file \mbox{\hyperlink{bits_8h_source}{bits.\+h}}.

\mbox{\Hypertarget{namespacekblib_a2888a4a5d49c15f73ced60c66c31dc15}\label{namespacekblib_a2888a4a5d49c15f73ced60c66c31dc15}} 
\index{kblib@{kblib}!get@{get}}
\index{get@{get}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [4/8]}}
{\footnotesize\ttfamily template$<$std\+::size\+\_\+t I, typename T $>$ \\
auto kblib\+::get (\begin{DoxyParamCaption}\item[{const volatile \mbox{\hyperlink{classkblib_1_1enumeration}{enumeration}}$<$ T $>$ \&}]{e }\end{DoxyParamCaption}) -\/$>$ decltype(auto) }



Definition at line \mbox{\hyperlink{iterators_8h_source_l00855}{855}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_a554b8034891b88291ee4014c5618e41f}\label{namespacekblib_a554b8034891b88291ee4014c5618e41f}} 
\index{kblib@{kblib}!get@{get}}
\index{get@{get}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [5/8]}}
{\footnotesize\ttfamily template$<$std\+::size\+\_\+t I, typename T $>$ \\
auto kblib\+::get (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classkblib_1_1enumeration}{enumeration}}$<$ T $>$ \&\&}]{e }\end{DoxyParamCaption}) -\/$>$ decltype(auto) }



Definition at line \mbox{\hyperlink{iterators_8h_source_l00825}{825}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_aeb5bc5882b32685b477723ff9b5d4642}\label{namespacekblib_aeb5bc5882b32685b477723ff9b5d4642}} 
\index{kblib@{kblib}!get@{get}}
\index{get@{get}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [6/8]}}
{\footnotesize\ttfamily template$<$std\+::size\+\_\+t I, typename... Types$>$ \\
auto kblib\+::get (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structkblib_1_1punner}{punner}}$<$ Types... $>$ \&\&}]{p }\end{DoxyParamCaption}) -\/$>$ decltype(auto) \hspace{0.3cm}{\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{bits_8h_source_l00745}{745}} of file \mbox{\hyperlink{bits_8h_source}{bits.\+h}}.

\mbox{\Hypertarget{namespacekblib_a951945f1ed7d42562a7e6fa8cf8f0405}\label{namespacekblib_a951945f1ed7d42562a7e6fa8cf8f0405}} 
\index{kblib@{kblib}!get@{get}}
\index{get@{get}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [7/8]}}
{\footnotesize\ttfamily template$<$std\+::size\+\_\+t I, typename... Types$>$ \\
auto kblib\+::get (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structkblib_1_1punner}{punner}}$<$ Types... $>$ \&}]{p }\end{DoxyParamCaption}) -\/$>$ decltype(auto) \hspace{0.3cm}{\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{bits_8h_source_l00737}{737}} of file \mbox{\hyperlink{bits_8h_source}{bits.\+h}}.

\mbox{\Hypertarget{namespacekblib_a052e6c7d0944cda0ce9203c1036fc745}\label{namespacekblib_a052e6c7d0944cda0ce9203c1036fc745}} 
\index{kblib@{kblib}!get@{get}}
\index{get@{get}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [8/8]}}
{\footnotesize\ttfamily template$<$std\+::size\+\_\+t I, typename T $>$ \\
auto kblib\+::get (\begin{DoxyParamCaption}\item[{volatile \mbox{\hyperlink{classkblib_1_1enumeration}{enumeration}}$<$ T $>$ \&}]{e }\end{DoxyParamCaption}) -\/$>$ decltype(auto) }



Definition at line \mbox{\hyperlink{iterators_8h_source_l00845}{845}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_adaffd058800d74e8a1573f1f15b8ec11}\label{namespacekblib_adaffd058800d74e8a1573f1f15b8ec11}} 
\index{kblib@{kblib}!get\_byte\_index@{get\_byte\_index}}
\index{get\_byte\_index@{get\_byte\_index}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get\_byte\_index()}{get\_byte\_index()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
auto kblib\+::get\+\_\+byte\+\_\+index (\begin{DoxyParamCaption}\item[{const std\+::unique\+\_\+ptr$<$ T $>$ \&}]{x,  }\item[{std\+::size\+\_\+t}]{idx }\end{DoxyParamCaption}) -\/$>$ unsigned char \hspace{0.3cm}{\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{sort_8h_source_l00317}{317}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}.

\mbox{\Hypertarget{namespacekblib_a9eb65dc24cfed091382a277d77ac00a0}\label{namespacekblib_a9eb65dc24cfed091382a277d77ac00a0}} 
\index{kblib@{kblib}!get\_byte\_index@{get\_byte\_index}}
\index{get\_byte\_index@{get\_byte\_index}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get\_byte\_index()}{get\_byte\_index()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr auto kblib\+::get\+\_\+byte\+\_\+index (\begin{DoxyParamCaption}\item[{const T \&}]{x,  }\item[{std\+::size\+\_\+t}]{idx }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$std\+::is\+\_\+enum$<$T$>$\+::value, unsigned char$>$ \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{sort_8h_source_l00304}{304}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}.

\mbox{\Hypertarget{namespacekblib_aa0ce497444d4994f7a2c9832e415f607}\label{namespacekblib_aa0ce497444d4994f7a2c9832e415f607}} 
\index{kblib@{kblib}!get\_byte\_index@{get\_byte\_index}}
\index{get\_byte\_index@{get\_byte\_index}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get\_byte\_index()}{get\_byte\_index()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
auto kblib\+::get\+\_\+byte\+\_\+index (\begin{DoxyParamCaption}\item[{T $\ast$}]{x,  }\item[{std\+::size\+\_\+t}]{idx }\end{DoxyParamCaption}) -\/$>$ unsigned char \hspace{0.3cm}{\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{sort_8h_source_l00312}{312}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae8bc9b87eff6f20b23a0da335c9501b9}\label{namespacekblib_ae8bc9b87eff6f20b23a0da335c9501b9}} 
\index{kblib@{kblib}!get\_byte\_index@{get\_byte\_index}}
\index{get\_byte\_index@{get\_byte\_index}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get\_byte\_index()}{get\_byte\_index()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr auto kblib\+::get\+\_\+byte\+\_\+index (\begin{DoxyParamCaption}\item[{T}]{x,  }\item[{std\+::size\+\_\+t}]{idx }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$std\+::is\+\_\+integral$<$T$>$\+::value, unsigned char$>$ \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{sort_8h_source_l00299}{299}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae0ceac8ca285d73c019ff7822c3a89d3}\label{namespacekblib_ae0ceac8ca285d73c019ff7822c3a89d3}} 
\index{kblib@{kblib}!get\_check@{get\_check}}
\index{get\_check@{get\_check}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get\_check()}{get\_check()}}
{\footnotesize\ttfamily template$<$typename M , typename K $>$ \\
constexpr auto kblib\+::get\+\_\+check (\begin{DoxyParamCaption}\item[{M \&\&}]{m,  }\item[{const K \&}]{key }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{structkblib_1_1exists__t}{exists\+\_\+t}}$<$decltype(m.\+find(key))$>$ \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{containers_8h_source_l00094}{94}} of file \mbox{\hyperlink{containers_8h_source}{containers.\+h}}.

\mbox{\Hypertarget{namespacekblib_a629b6bb6b53b02c3ae0129ddc128eb5c}\label{namespacekblib_a629b6bb6b53b02c3ae0129ddc128eb5c}} 
\index{kblib@{kblib}!get\_contents@{get\_contents}}
\index{get\_contents@{get\_contents}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get\_contents()}{get\_contents()}}
{\footnotesize\ttfamily template$<$typename D  = std\+::string, typename std\+::enable\+\_\+if\+\_\+t$<$ \mbox{\hyperlink{namespacekblib_acec974f6a75e6884147ef326bbd78d35}{is\+\_\+contiguous\+\_\+v}}$<$ D $>$, int $>$  = 0$>$ \\
auto kblib\+::get\+\_\+contents (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{in,  }\item[{D \&}]{out }\end{DoxyParamCaption}) -\/$>$ auto }



Definition at line \mbox{\hyperlink{io_8h_source_l00064}{64}} of file \mbox{\hyperlink{io_8h_source}{io.\+h}}.

\mbox{\Hypertarget{namespacekblib_a842d755850ee1a876ee0587931a7bd16}\label{namespacekblib_a842d755850ee1a876ee0587931a7bd16}} 
\index{kblib@{kblib}!get\_file\_contents@{get\_file\_contents}}
\index{get\_file\_contents@{get\_file\_contents}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get\_file\_contents()}{get\_file\_contents()}}
{\footnotesize\ttfamily template$<$typename D  = std\+::string, typename string $>$ \\
auto kblib\+::get\+\_\+file\+\_\+contents (\begin{DoxyParamCaption}\item[{const string \&}]{filename }\end{DoxyParamCaption}) -\/$>$ std\+::optional$<$D$>$ }



Read the entire contents of a file into a container, such as std\+::string or std\+::vector$<$char$>$. Note that it will be most efficient to read into contiguous containers, as opposed to non-\/contiguous containers. 


\begin{DoxyParams}{Parameters}
{\em filename} & The filename to open. \\
\hline
\end{DoxyParams}

\begin{DoxyTemplParams}{Template Parameters}
{\em D} & A contiguous sequence container, which will be created and filled with the contents of the file to be read. \\
\hline
\end{DoxyTemplParams}
\begin{DoxyReturn}{Returns}
std\+::optional$<$\+D$>$ The contents of the file, if reading was successful. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{io_8h_source_l00097}{97}} of file \mbox{\hyperlink{io_8h_source}{io.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab094fc53f62f0f36e6f68eb3a4e70d5b}\label{namespacekblib_ab094fc53f62f0f36e6f68eb3a4e70d5b}} 
\index{kblib@{kblib}!get\_line@{get\_line}}
\index{get\_line@{get\_line}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get\_line()}{get\_line()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename CharT , typename... O, template$<$ typename, typename... $>$ class string$>$ \\
auto kblib\+::get\+\_\+line (\begin{DoxyParamCaption}\item[{string$<$ CharT, O... $>$ \&}]{str }\end{DoxyParamCaption}) -\/$>$ auto \hspace{0.3cm}{\ttfamily [inline]}}



Read a whole line into a std\+::basic\+\_\+string-\/like class template. 

When used like os \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} get\+\_\+line(str); for a std\+::ostream\& os and std\+::string str, reads a full line into str instead of just a single word.


\begin{DoxyParams}{Parameters}
{\em str} & The string to read a line into. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{io_8h_source_l00340}{340}} of file \mbox{\hyperlink{io_8h_source}{io.\+h}}.

\mbox{\Hypertarget{namespacekblib_a6ceffff6280ce849da581b3d46ce495b}\label{namespacekblib_a6ceffff6280ce849da581b3d46ce495b}} 
\index{kblib@{kblib}!get\_line@{get\_line}}
\index{get\_line@{get\_line}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get\_line()}{get\_line()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename CharT , typename... O, template$<$ typename, typename... $>$ class string$>$ \\
auto kblib\+::get\+\_\+line (\begin{DoxyParamCaption}\item[{string$<$ CharT, O... $>$ \&}]{str,  }\item[{CharT}]{delim }\end{DoxyParamCaption}) -\/$>$ auto \hspace{0.3cm}{\ttfamily [inline]}}



Read a delimited string into a std\+::basic\+\_\+string-\/like class template. 

When used like os \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} get\+\_\+line(str, \textquotesingle{}~\newline
\textquotesingle{}); for a std\+::ostream\& os and std\+::string str, reads a full line into str instead of just a single word.


\begin{DoxyParams}{Parameters}
{\em str} & The string to read into. \\
\hline
{\em delim} & The delimiter at which to stop reading text. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{io_8h_source_l00361}{361}} of file \mbox{\hyperlink{io_8h_source}{io.\+h}}.

\mbox{\Hypertarget{namespacekblib_a07a1e3d300beb263772b5fd079e5d029}\label{namespacekblib_a07a1e3d300beb263772b5fd079e5d029}} 
\index{kblib@{kblib}!get\_max\_n@{get\_max\_n}}
\index{get\_max\_n@{get\_max\_n}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get\_max\_n()}{get\_max\_n()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Comp  = std\+::less$<$$>$, typename Input\+It , typename Output\+It , typename Elem  = typename std\+::iterator\+\_\+traits$<$\+Input\+It$>$\+::value\+\_\+type$>$ \\
constexpr auto kblib\+::get\+\_\+max\+\_\+n (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Input\+It}]{last,  }\item[{Output\+It}]{d\+\_\+begin,  }\item[{std\+::size\+\_\+t}]{count,  }\item[{Comp}]{cmp = {\ttfamily \{\}} }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_acdb4473ef9196a18a0e37e05171729f0}{return\+\_\+assert\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__output__iterator__for}{is\+\_\+output\+\_\+iterator\+\_\+for}}$<$Output\+It, Elem$>$\+::value,                        Output\+It$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Copies the count greatest elements according to cmp of the range \mbox{[}first, last) to the range beginning at d\+\_\+begin. 

Note that this function uses O(count) extra memory to store a mutable range for sorting. Directly calling std\+::partial\+\_\+sort\+\_\+copy with a properly sized container will be more efficient than this function because it avoids allocating extra working memory. This function should rather be used for non-\/random-\/access output ranges.


\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the range. \\
\hline
{\em last} & One past the end of the range. \\
\hline
{\em d\+\_\+begin} & The beginning of the output range. \\
\hline
{\em count} & The number of elements to copy out of the range. \\
\hline
{\em cmp} & The comparison function to use. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Output\+It An iterator to past the last element written. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l01257}{1257}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a73a566130ecb9a7b37b0db0952a53404}\label{namespacekblib_a73a566130ecb9a7b37b0db0952a53404}} 
\index{kblib@{kblib}!get\_max\_n@{get\_max\_n}}
\index{get\_max\_n@{get\_max\_n}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get\_max\_n()}{get\_max\_n()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Sequence\+Container , typename Comp  = std\+::less$<$$>$, typename It , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ is\+\_\+linear\+\_\+container\+\_\+v$<$ Sequence\+Container $>$, int $>$  = 0$>$ \\
constexpr auto kblib\+::get\+\_\+max\+\_\+n (\begin{DoxyParamCaption}\item[{It}]{first,  }\item[{It}]{last,  }\item[{std\+::size\+\_\+t}]{count,  }\item[{Comp}]{cmp = {\ttfamily \{\}} }\end{DoxyParamCaption}) -\/$>$ Sequence\+Container \hspace{0.3cm}{\ttfamily [constexpr]}}



Returns a container of the greatest count elements according to cmp of the range \mbox{[}first, last), in descending order. This overload works for linear containers. 

Returns a container of the greatest count elements according to cmp of the range \mbox{[}first, last). This overload works for set-\/like containers.


\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the range. \\
\hline
{\em last} & One past the end of the range. \\
\hline
{\em count} & The number of elements to copy out of the range. \\
\hline
{\em cmp} & The comparison function to use. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Sequence\+Container The greatest count elements of the range, in arbitrary order.
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the range. \\
\hline
{\em last} & One past the end of the range. \\
\hline
{\em count} & The number of elements to copy out of the range. \\
\hline
{\em cmp} & The comparison function to use. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Setlike\+Container The greatest count elements of the range, in arbitrary order. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l01203}{1203}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a774bfbeef759d1bbedb5908f1348591b}\label{namespacekblib_a774bfbeef759d1bbedb5908f1348591b}} 
\index{kblib@{kblib}!get\_max\_n\_old@{get\_max\_n\_old}}
\index{get\_max\_n\_old@{get\_max\_n\_old}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get\_max\_n\_old()}{get\_max\_n\_old()}}
{\footnotesize\ttfamily template$<$typename Sequence\+Container , typename Comp  = std\+::less$<$$>$, typename It , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ is\+\_\+linear\+\_\+container\+\_\+v$<$ Sequence\+Container $>$, int $>$  = 0$>$ \\
constexpr auto kblib\+::get\+\_\+max\+\_\+n\+\_\+old (\begin{DoxyParamCaption}\item[{It}]{first,  }\item[{It}]{last,  }\item[{std\+::size\+\_\+t}]{count,  }\item[{Comp}]{cmp = {\ttfamily \{\}} }\end{DoxyParamCaption}) -\/$>$ Sequence\+Container \hspace{0.3cm}{\ttfamily [constexpr]}}



Returns a container of the greatest count elements according to cmp of the range \mbox{[}first, last), in arbitrary order. This overload works for linear containers. 

Returns a container of the greatest count elements according to cmp of the range \mbox{[}first, last). This overload works for set-\/like types.

This function is included because its performance is sometimes better than the new version, and additionally, it does not rely on default-\/constructibility for the value type.

\begin{DoxyAttention}{Attention}
The returned container will not be sorted, unless it is something like std\+::multiset which will use the other overload.
\end{DoxyAttention}

\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the range. \\
\hline
{\em last} & One past the end of the range. \\
\hline
{\em count} & The number of elements to copy out of the range. \\
\hline
{\em cmp} & The comparison function to use. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Sequence\+Container The greatest count elements of the range, in arbitrary order.
\end{DoxyReturn}
This function is included because its performance is sometimes better than the new version, and additionally, it does not rely on default-\/constructibility for the value type.


\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the range. \\
\hline
{\em first} & One past the end of the range. \\
\hline
{\em count} & The number of elements to copy out of the range. \\
\hline
{\em cmp} & The comparison function to use. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Setlike\+Container The greatest count elements of the range, in arbitrary order. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l01146}{1146}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a255d018d13394a47c014b2929a35a3b5}\label{namespacekblib_a255d018d13394a47c014b2929a35a3b5}} 
\index{kblib@{kblib}!get\_or@{get\_or}}
\index{get\_or@{get\_or}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{get\_or()}{get\_or()}}
{\footnotesize\ttfamily template$<$class C , typename K , typename V $>$ \\
constexpr auto kblib\+::get\+\_\+or (\begin{DoxyParamCaption}\item[{const C \&}]{m,  }\item[{const K \&}]{key,  }\item[{const V \&}]{defval }\end{DoxyParamCaption}) -\/$>$ typename C\+::mapped\+\_\+type \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{containers_8h_source_l00057}{57}} of file \mbox{\hyperlink{containers_8h_source}{containers.\+h}}.

\mbox{\Hypertarget{namespacekblib_a8ec120cbc5e4f7c1624f07e48660b7f9}\label{namespacekblib_a8ec120cbc5e4f7c1624f07e48660b7f9}} 
\index{kblib@{kblib}!getline@{getline}}
\index{getline@{getline}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{getline()}{getline()}}
{\footnotesize\ttfamily auto kblib\+::getline (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{is }\end{DoxyParamCaption}) -\/$>$ std\+::string \hspace{0.3cm}{\ttfamily [inline]}}



By-\/value std\+::getline wrapper. 


\begin{DoxyParams}{Parameters}
{\em is} & The stream to extract from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
std\+::string A single line of text from the stream. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{io_8h_source_l00146}{146}} of file \mbox{\hyperlink{io_8h_source}{io.\+h}}.

\mbox{\Hypertarget{namespacekblib_a39eea8a137cf73e71ddcba1a074b5ca1}\label{namespacekblib_a39eea8a137cf73e71ddcba1a074b5ca1}} 
\index{kblib@{kblib}!html\_encode@{html\_encode}}
\index{html\_encode@{html\_encode}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{html\_encode()}{html\_encode()}}
{\footnotesize\ttfamily template$<$typename string $>$ \\
auto kblib\+::html\+\_\+encode (\begin{DoxyParamCaption}\item[{const string \&}]{data }\end{DoxyParamCaption}) -\/$>$ std\+::string }



Definition at line \mbox{\hyperlink{convert_8h_source_l00519}{519}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_a0657f89209aa9c1f4c95ce00e2744f24}\label{namespacekblib_a0657f89209aa9c1f4c95ce00e2744f24}} 
\index{kblib@{kblib}!in\_range@{in\_range}}
\index{in\_range@{in\_range}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{in\_range()}{in\_range()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr auto kblib\+::in\+\_\+range (\begin{DoxyParamCaption}\item[{const T \&}]{v,  }\item[{\mbox{\hyperlink{structkblib_1_1detail__simple_1_1simple__range}{detail\+\_\+simple\+::simple\+\_\+range}}$<$ T $>$}]{r }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{simple_8h_source_l00061}{61}} of file \mbox{\hyperlink{simple_8h_source}{simple.\+h}}.

\mbox{\Hypertarget{namespacekblib_afef50b8a478317dbcbc249e688f6e93b}\label{namespacekblib_afef50b8a478317dbcbc249e688f6e93b}} 
\index{kblib@{kblib}!in\_range\_i@{in\_range\_i}}
\index{in\_range\_i@{in\_range\_i}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{in\_range\_i()}{in\_range\_i()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr auto kblib\+::in\+\_\+range\+\_\+i (\begin{DoxyParamCaption}\item[{const T \&}]{v,  }\item[{\mbox{\hyperlink{structkblib_1_1detail__simple_1_1simple__range}{detail\+\_\+simple\+::simple\+\_\+range}}$<$ T $>$}]{r }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{simple_8h_source_l00065}{65}} of file \mbox{\hyperlink{simple_8h_source}{simple.\+h}}.

\mbox{\Hypertarget{namespacekblib_a893a2961c20b0657dffbbd2fe8f362c4}\label{namespacekblib_a893a2961c20b0657dffbbd2fe8f362c4}} 
\index{kblib@{kblib}!indirect@{indirect}}
\index{indirect@{indirect}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{indirect()}{indirect()}}
{\footnotesize\ttfamily template$<$typename Iter1 , typename Iter2 $>$ \\
constexpr auto kblib\+::indirect (\begin{DoxyParamCaption}\item[{Iter1}]{begin,  }\item[{Iter2}]{end }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{structkblib_1_1indirect__range}{indirect\+\_\+range}}$<$Iter1, Iter2$>$ \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Create a range from an iterator pair. Primarily useful for range-\/for loops. 


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to wrap. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{iterators_8h_source_l01060}{1060}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_adbf35ad5c1ebb477db462d817a1a03cc}\label{namespacekblib_adbf35ad5c1ebb477db462d817a1a03cc}} 
\index{kblib@{kblib}!indirect\_range@{indirect\_range}}
\index{indirect\_range@{indirect\_range}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{indirect\_range()}{indirect\_range()}}
{\footnotesize\ttfamily template$<$typename Iter1 , typename Iter2 $>$ \\
\mbox{\hyperlink{structkblib_1_1indirect__range}{kblib\+::indirect\+\_\+range}} (\begin{DoxyParamCaption}\item[{Iter1}]{,  }\item[{Iter2}]{ }\end{DoxyParamCaption}) -\/$>$  \mbox{\hyperlink{structkblib_1_1indirect__range}{indirect\+\_\+range}}$<$ Iter1, Iter2 $>$}

\mbox{\Hypertarget{namespacekblib_a43cda388d529e7f9553850b366ef3380}\label{namespacekblib_a43cda388d529e7f9553850b366ef3380}} 
\index{kblib@{kblib}!insertion\_sort@{insertion\_sort}}
\index{insertion\_sort@{insertion\_sort}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{insertion\_sort()}{insertion\_sort()}}
{\footnotesize\ttfamily template$<$typename Random\+Access\+It , typename Compare  = std\+::less$<$$>$$>$ \\
constexpr auto kblib\+::insertion\+\_\+sort (\begin{DoxyParamCaption}\item[{const Random\+Access\+It}]{begin,  }\item[{const Random\+Access\+It}]{end,  }\item[{Compare \&\&}]{compare = {\ttfamily \{\}} }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



In-\/place insertion sort. As is usual, it is stable. Provides as a guarantee that it will perform no moves on sorted input. 

\begin{DoxyRemark}{Remarks}
Complexity\+: 

Average case O(n$^\wedge$2) 

Best-\/case Θ(n) (for sorted input) 

worst-\/case O(n$^\wedge$2) (for reverse-\/sorted input)
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to sort \\
\hline
{\em compare} & The comparison predicate \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{sort_8h_source_l00057}{57}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}.

\mbox{\Hypertarget{namespacekblib_a654de993e7d26592cdc4e05443150296}\label{namespacekblib_a654de993e7d26592cdc4e05443150296}} 
\index{kblib@{kblib}!insertion\_sort\_copy@{insertion\_sort\_copy}}
\index{insertion\_sort\_copy@{insertion\_sort\_copy}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{insertion\_sort\_copy()}{insertion\_sort\_copy()}}
{\footnotesize\ttfamily template$<$typename Random\+Access\+It , typename Random\+Access\+It2 , typename Compare  = std\+::less$<$$>$$>$ \\
constexpr auto kblib\+::insertion\+\_\+sort\+\_\+copy (\begin{DoxyParamCaption}\item[{const Random\+Access\+It}]{begin,  }\item[{const Random\+Access\+It}]{end,  }\item[{const Random\+Access\+It2}]{d\+\_\+begin,  }\item[{const Random\+Access\+It2}]{d\+\_\+end,  }\item[{Compare \&\&}]{compare = {\ttfamily \{\}} }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Out-\/of-\/place insertion sort, which does not modify the input. Provides as a guarantee that it will perform no moves on sorted input. 

\begin{DoxyRemark}{Remarks}
Complexity\+: 

Average case O(n$^\wedge$2) 

Best-\/case Θ(n) (for sorted input) 

worst-\/case O(n$^\wedge$2) (for reverse-\/sorted input)
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em begin,end} & The input range \\
\hline
{\em d\+\_\+begin,d\+\_\+end} & The output range \\
\hline
{\em compare} & The comparison predicate \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{sort_8h_source_l00093}{93}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}.

\mbox{\Hypertarget{namespacekblib_a9b10acd2ddaea118b990e1177f626722}\label{namespacekblib_a9b10acd2ddaea118b990e1177f626722}} 
\index{kblib@{kblib}!invoke@{invoke}}
\index{invoke@{invoke}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{invoke()}{invoke()}}
{\footnotesize\ttfamily template$<$typename F , typename... Args$>$ \\
constexpr auto kblib\+::invoke (\begin{DoxyParamCaption}\item[{F \&\&}]{f,  }\item[{Args \&\&...}]{args }\end{DoxyParamCaption}) -\/$>$ decltype(auto) \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00131}{131}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a40d0e463984f5ab01f6db106dbad9fb0}\label{namespacekblib_a40d0e463984f5ab01f6db106dbad9fb0}} 
\index{kblib@{kblib}!iota@{iota}}
\index{iota@{iota}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{iota()}{iota()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename T $>$ \\
constexpr auto kblib\+::iota (\begin{DoxyParamCaption}\item[{Forward\+It}]{first,  }\item[{Forward\+It}]{last,  }\item[{T}]{value }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l01575}{1575}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_aae9af72a825beb17613b2754bbaca9cc}\label{namespacekblib_aae9af72a825beb17613b2754bbaca9cc}} 
\index{kblib@{kblib}!iota@{iota}}
\index{iota@{iota}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{iota()}{iota()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename T , typename Unary\+Operation $>$ \\
constexpr auto kblib\+::iota (\begin{DoxyParamCaption}\item[{Forward\+It}]{first,  }\item[{Forward\+It}]{last,  }\item[{T}]{value,  }\item[{Unary\+Operation}]{unary\+\_\+op }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l01587}{1587}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a5a9fb5dbd7082695242567ef3bdfe89c}\label{namespacekblib_a5a9fb5dbd7082695242567ef3bdfe89c}} 
\index{kblib@{kblib}!ipow2@{ipow2}}
\index{ipow2@{ipow2}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{ipow2()}{ipow2()}}
{\footnotesize\ttfamily template$<$typename UInt\+Type $>$ \\
constexpr auto kblib\+::ipow2 (\begin{DoxyParamCaption}\item[{UInt\+Type}]{b }\end{DoxyParamCaption}) -\/$>$ UInt\+Type \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{random_8h_source_l00319}{319}} of file \mbox{\hyperlink{random_8h_source}{random.\+h}}.

\mbox{\Hypertarget{namespacekblib_a75ac0367cce25b0498451e5e5c711297}\label{namespacekblib_a75ac0367cce25b0498451e5e5c711297}} 
\index{kblib@{kblib}!irange@{irange}}
\index{irange@{irange}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{irange()}{irange()}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta  = int$>$ \\
constexpr auto kblib\+::irange (\begin{DoxyParamCaption}\item[{Value}]{,  }\item[{Value}]{,  }\item[{Delta}]{ = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{iterators_8h_source_l00660}{660}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_a0f3921343096a5041fd08ecf6287701a}\label{namespacekblib_a0f3921343096a5041fd08ecf6287701a}} 
\index{kblib@{kblib}!is\_consecutive@{is\_consecutive}}
\index{is\_consecutive@{is\_consecutive}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{is\_consecutive()}{is\_consecutive()}}
{\footnotesize\ttfamily template$<$typename T , std\+::size\+\_\+t N$>$ \\
constexpr auto kblib\+::is\+\_\+consecutive (\begin{DoxyParamCaption}\item[{const T(\&)}]{array\mbox{[}\+N\mbox{]} }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$std\+::is\+\_\+integral$<$T$>$\+::value, bool$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{simple_8h_source_l00145}{145}} of file \mbox{\hyperlink{simple_8h_source}{simple.\+h}}.

\mbox{\Hypertarget{namespacekblib_a93e9fd5013f05b5433d36a010f7d447d}\label{namespacekblib_a93e9fd5013f05b5433d36a010f7d447d}} 
\index{kblib@{kblib}!isAspace@{isAspace}}
\index{isAspace@{isAspace}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{isAspace()}{isAspace()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily constexpr auto kblib\+::is\+Aspace (\begin{DoxyParamCaption}\item[{char}]{c }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{stringops_8h_source_l00343}{343}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a1d56bb6caa6ddf9f4bed73116501d2ed}\label{namespacekblib_a1d56bb6caa6ddf9f4bed73116501d2ed}} 
\index{kblib@{kblib}!isAspace@{isAspace}}
\index{isAspace@{isAspace}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{isAspace()}{isAspace()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily constexpr auto kblib\+::is\+Aspace (\begin{DoxyParamCaption}\item[{wchar\+\_\+t}]{c }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{stringops_8h_source_l00351}{351}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a9ac0c26180c8c2c92776c9f5ab5d9cb5}\label{namespacekblib_a9ac0c26180c8c2c92776c9f5ab5d9cb5}} 
\index{kblib@{kblib}!isspace@{isspace}}
\index{isspace@{isspace}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{isspace()}{isspace()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily auto kblib\+::isspace (\begin{DoxyParamCaption}\item[{char}]{c }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [inline]}}



Definition at line \mbox{\hyperlink{stringops_8h_source_l00331}{331}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a1b60023a02def7bd83ee293cb48979fb}\label{namespacekblib_a1b60023a02def7bd83ee293cb48979fb}} 
\index{kblib@{kblib}!isspace@{isspace}}
\index{isspace@{isspace}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{isspace()}{isspace()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily auto kblib\+::isspace (\begin{DoxyParamCaption}\item[{wchar\+\_\+t}]{c }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [inline]}}



Definition at line \mbox{\hyperlink{stringops_8h_source_l00334}{334}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a6127fe0b8fdc5d0374a81eddf28749df}\label{namespacekblib_a6127fe0b8fdc5d0374a81eddf28749df}} 
\index{kblib@{kblib}!join@{join}}
\index{join@{join}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{join()}{join()}}
{\footnotesize\ttfamily template$<$typename \mbox{\hyperlink{namespacekblib_a72690688922a2d4ae9a3e46ff0c1a9a9}{range}} , typename string  = std\+::string$>$ \\
auto kblib\+::join (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespacekblib_a72690688922a2d4ae9a3e46ff0c1a9a9}{range}} \&}]{in,  }\item[{const string \&}]{joiner = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})}



Concatenates all elements of a range together with an optional joiner. 

range must support iteration and be supported by \mbox{\hyperlink{namespacekblib_1_1fakestd_adb8781bc0e5d1ba4ca4624293c0c98ae}{fakestd\+::size()}}.


\begin{DoxyParams}{Parameters}
{\em in} & A sequence of strings to concatenate. \\
\hline
{\em joiner} & A string which will be inserted between every element of in. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
string The joined string. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00370}{370}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a47a95399524c0bca50361169128f9db9}\label{namespacekblib_a47a95399524c0bca50361169128f9db9}} 
\index{kblib@{kblib}!kbsplit2@{kbsplit2}}
\index{kbsplit2@{kbsplit2}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{kbsplit2()}{kbsplit2()}}
{\footnotesize\ttfamily template$<$typename Container  = std\+::vector$<$std\+::string$>$, typename String $>$ \\
auto kblib\+::kbsplit2 (\begin{DoxyParamCaption}\item[{const String \&}]{in,  }\item[{char}]{delim = {\ttfamily \textquotesingle{}~\textquotesingle{}} }\end{DoxyParamCaption}) -\/$>$ Container }



Definition at line \mbox{\hyperlink{stringops_8h_source_l00474}{474}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a793fd30664717fe1da593bf53e895e9d}\label{namespacekblib_a793fd30664717fe1da593bf53e895e9d}} 
\index{kblib@{kblib}!length@{length}}
\index{length@{length}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{length()}{length()}}
{\footnotesize\ttfamily template$<$typename CharT $>$ \\
constexpr auto kblib\+::length (\begin{DoxyParamCaption}\item[{const CharT $\ast$}]{str }\end{DoxyParamCaption}) -\/$>$ std\+::size\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{stringops_8h_source_l00234}{234}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae68ff8cae049c12ffe3f568617e8d6c3}\label{namespacekblib_ae68ff8cae049c12ffe3f568617e8d6c3}} 
\index{kblib@{kblib}!lexical\_cast@{lexical\_cast}}
\index{lexical\_cast@{lexical\_cast}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{lexical\_cast()}{lexical\_cast()}}
{\footnotesize\ttfamily template$<$typename To , typename From $>$ \\
auto kblib\+::lexical\+\_\+cast (\begin{DoxyParamCaption}\item[{const From \&}]{val,  }\item[{const char $\ast$}]{type = {\ttfamily typeid(To).name()} }\end{DoxyParamCaption}) -\/$>$ To }



Definition at line \mbox{\hyperlink{convert_8h_source_l00836}{836}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae56f85ba1bf0712f3d28db56c231976f}\label{namespacekblib_ae56f85ba1bf0712f3d28db56c231976f}} 
\index{kblib@{kblib}!lexical\_coerce@{lexical\_coerce}}
\index{lexical\_coerce@{lexical\_coerce}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{lexical\_coerce()}{lexical\_coerce()}}
{\footnotesize\ttfamily template$<$typename To , typename... Ts$>$ \\
auto kblib\+::lexical\+\_\+coerce (\begin{DoxyParamCaption}\item[{const std\+::variant$<$ Ts... $>$ \&}]{v }\end{DoxyParamCaption}) -\/$>$ To }



Lexically converts the value of v (no matter its type) to type To. 


\begin{DoxyParams}{Parameters}
{\em v} & A variant to coerce. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
To The type to coerce to. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{variant_8h_source_l00091}{91}} of file \mbox{\hyperlink{variant_8h_source}{variant.\+h}}.

\mbox{\Hypertarget{namespacekblib_aec67bf14d264f3587e3b86645af62d2a}\label{namespacekblib_aec67bf14d264f3587e3b86645af62d2a}} 
\index{kblib@{kblib}!lexicographical\_compare@{lexicographical\_compare}}
\index{lexicographical\_compare@{lexicographical\_compare}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{lexicographical\_compare()}{lexicographical\_compare()}}
{\footnotesize\ttfamily template$<$class Input\+It1 , class Input\+It2 $>$ \\
constexpr auto kblib\+::lexicographical\+\_\+compare (\begin{DoxyParamCaption}\item[{Input\+It1}]{first1,  }\item[{Input\+It1}]{last1,  }\item[{Input\+It2}]{first2,  }\item[{Input\+It2}]{last2 }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l01080}{1080}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a0084bbd67ea381c6954c3d82c3cd0691}\label{namespacekblib_a0084bbd67ea381c6954c3d82c3cd0691}} 
\index{kblib@{kblib}!magic\_enumerate@{magic\_enumerate}}
\index{magic\_enumerate@{magic\_enumerate}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{magic\_enumerate()}{magic\_enumerate()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename It , typename EIt $>$ \\
auto kblib\+::magic\+\_\+enumerate (\begin{DoxyParamCaption}\item[{It}]{begin,  }\item[{EIt}]{end }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{classkblib_1_1enumerator__t}{enumerator\+\_\+t}}$<$It, EIt$>$ }



Allow access to indexes while using range-\/based for loops. 

The \char`\"{}magic\char`\"{} part is that 
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{for} (\textcolor{keyword}{auto}\&\& [idx, val] : \mbox{\hyperlink{namespacekblib_a0084bbd67ea381c6954c3d82c3cd0691}{kblib::magic\_enumerate}}(\mbox{\hyperlink{namespacekblib_a72690688922a2d4ae9a3e46ff0c1a9a9}{range}})) \{}

\end{DoxyCode}
 captures \textquotesingle{}val\textquotesingle{} by reference, while 
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{for} (\textcolor{keyword}{auto} [idx, val] : \mbox{\hyperlink{namespacekblib_a0084bbd67ea381c6954c3d82c3cd0691}{kblib::magic\_enumerate}}(\mbox{\hyperlink{namespacekblib_a72690688922a2d4ae9a3e46ff0c1a9a9}{range}})) \{}

\end{DoxyCode}
 captures \textquotesingle{}val\textquotesingle{} by value, so that the effect is similar to if you had written 
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{for} (\textcolor{keyword}{auto} val : \mbox{\hyperlink{namespacekblib_a72690688922a2d4ae9a3e46ff0c1a9a9}{range}}) \{}

\end{DoxyCode}
 and kept track of the index manually.


\begin{DoxyParams}{Parameters}
{\em begin,end} & The input range. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{iterators_8h_source_l00989}{989}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_a5617b65c2a82a734f2095c16f00e316c}\label{namespacekblib_a5617b65c2a82a734f2095c16f00e316c}} 
\index{kblib@{kblib}!magic\_enumerate@{magic\_enumerate}}
\index{magic\_enumerate@{magic\_enumerate}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{magic\_enumerate()}{magic\_enumerate()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Range $>$ \\
auto kblib\+::magic\+\_\+enumerate (\begin{DoxyParamCaption}\item[{Range \&\&}]{r }\end{DoxyParamCaption}) -\/$>$ auto }



Allow access to indexes while using range-\/based for loops. Safe to use with rvalues. 

The \char`\"{}magic\char`\"{} part is that 
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{for} (\textcolor{keyword}{auto}\&\& [idx, val] : \mbox{\hyperlink{namespacekblib_a0084bbd67ea381c6954c3d82c3cd0691}{kblib::magic\_enumerate}}(\mbox{\hyperlink{namespacekblib_a72690688922a2d4ae9a3e46ff0c1a9a9}{range}})) \{}

\end{DoxyCode}
 captures \textquotesingle{}val\textquotesingle{} by reference, while 
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{for} (\textcolor{keyword}{auto} [idx, val] : \mbox{\hyperlink{namespacekblib_a0084bbd67ea381c6954c3d82c3cd0691}{kblib::magic\_enumerate}}(\mbox{\hyperlink{namespacekblib_a72690688922a2d4ae9a3e46ff0c1a9a9}{range}})) \{}

\end{DoxyCode}
 captures \textquotesingle{}val\textquotesingle{} by value, so that the effect is similar to if you had written 
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{for} (\textcolor{keyword}{auto} val : \mbox{\hyperlink{namespacekblib_a72690688922a2d4ae9a3e46ff0c1a9a9}{range}}) \{}

\end{DoxyCode}
 and kept track of the index manually.


\begin{DoxyParams}{Parameters}
{\em r} & A range to iterate over. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{iterators_8h_source_l01014}{1014}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_af2d860ddf535b7091b11fc07aabe472f}\label{namespacekblib_af2d860ddf535b7091b11fc07aabe472f}} 
\index{kblib@{kblib}!make\_cond\_ptr@{make\_cond\_ptr}}
\index{make\_cond\_ptr@{make\_cond\_ptr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{make\_cond\_ptr()}{make\_cond\_ptr()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily template$<$typename T , typename Deleter $>$ \\
auto kblib\+::make\+\_\+cond\+\_\+ptr (\begin{DoxyParamCaption}\item[{std\+::unique\+\_\+ptr$<$ T, Deleter $>$ \&\&}]{arg }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{classkblib_1_1cond__ptr}{cond\+\_\+ptr}}$<$T, Deleter$>$ \hspace{0.3cm}{\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{memory_8h_source_l00783}{783}} of file \mbox{\hyperlink{memory_8h_source}{memory.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab19e9968b3988d68b39eaf3b09342d6e}\label{namespacekblib_ab19e9968b3988d68b39eaf3b09342d6e}} 
\index{kblib@{kblib}!make\_cond\_ptr@{make\_cond\_ptr}}
\index{make\_cond\_ptr@{make\_cond\_ptr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{make\_cond\_ptr()}{make\_cond\_ptr()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily template$<$typename T , typename Deleter $>$ \\
auto kblib\+::make\+\_\+cond\+\_\+ptr (\begin{DoxyParamCaption}\item[{T $\ast$}]{arg,  }\item[{bool}]{owner,  }\item[{Deleter}]{del }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{classkblib_1_1cond__ptr}{cond\+\_\+ptr}}$<$T, Deleter$>$ \hspace{0.3cm}{\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{memory_8h_source_l00801}{801}} of file \mbox{\hyperlink{memory_8h_source}{memory.\+h}}.

\mbox{\Hypertarget{namespacekblib_a52d62500a095e18991f3ad59dcc83327}\label{namespacekblib_a52d62500a095e18991f3ad59dcc83327}} 
\index{kblib@{kblib}!make\_cond\_ptr@{make\_cond\_ptr}}
\index{make\_cond\_ptr@{make\_cond\_ptr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{make\_cond\_ptr()}{make\_cond\_ptr()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
auto kblib\+::make\+\_\+cond\+\_\+ptr (\begin{DoxyParamCaption}\item[{T $\ast$}]{arg,  }\item[{bool}]{owner = {\ttfamily false} }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{classkblib_1_1cond__ptr}{cond\+\_\+ptr}}$<$T$>$ \hspace{0.3cm}{\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{memory_8h_source_l00789}{789}} of file \mbox{\hyperlink{memory_8h_source}{memory.\+h}}.

\mbox{\Hypertarget{namespacekblib_a6b20de5026ac934359d2cdc1d5426611}\label{namespacekblib_a6b20de5026ac934359d2cdc1d5426611}} 
\index{kblib@{kblib}!make\_cond\_ptr@{make\_cond\_ptr}}
\index{make\_cond\_ptr@{make\_cond\_ptr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{make\_cond\_ptr()}{make\_cond\_ptr()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily template$<$typename T , typename Deleter $>$ \\
auto kblib\+::make\+\_\+cond\+\_\+ptr (\begin{DoxyParamCaption}\item[{T $\ast$}]{arg,  }\item[{Deleter}]{del }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{classkblib_1_1cond__ptr}{cond\+\_\+ptr}}$<$T, Deleter$>$ \hspace{0.3cm}{\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{memory_8h_source_l00795}{795}} of file \mbox{\hyperlink{memory_8h_source}{memory.\+h}}.

\mbox{\Hypertarget{namespacekblib_a96a777604ed38213d8fd0c1d53c3db70}\label{namespacekblib_a96a777604ed38213d8fd0c1d53c3db70}} 
\index{kblib@{kblib}!make\_fib\_arr@{make\_fib\_arr}}
\index{make\_fib\_arr@{make\_fib\_arr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{make\_fib\_arr()}{make\_fib\_arr()}}
{\footnotesize\ttfamily template$<$typename U , std\+::size\+\_\+t N = calc\+\_\+fib\+\_\+size$<$\+U$>$() + 1$>$ \\
constexpr auto kblib\+::make\+\_\+fib\+\_\+arr (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{structkblib_1_1trivial__array}{trivial\+\_\+array}}$<$U, N$>$ \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Generates the first N values of the fibonacci sequence. 

\begin{DoxyPrecond}{Precondition}
If N \texorpdfstring{$>$}{>} \mbox{\hyperlink{namespacekblib_a90baddc76df99c83665b9fa3d45609e2}{calc\+\_\+fib\+\_\+size$<$\+U$>$()}}, then U must be an unsigned type, and the resulting sequence is modulo 2$^\wedge$bits\+\_\+of\+\_\+U. 

N \texorpdfstring{$>$}{>}= 2
\end{DoxyPrecond}
\begin{DoxyReturn}{Returns}
trivial\+\_\+array$<$\+U, N$>$ An array containing the first N fibonacci numbers. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stats_8h_source_l00156}{156}} of file \mbox{\hyperlink{stats_8h_source}{stats.\+h}}.

\mbox{\Hypertarget{namespacekblib_aed7bb6b5bb036248bdf3f0832e8404a8}\label{namespacekblib_aed7bb6b5bb036248bdf3f0832e8404a8}} 
\index{kblib@{kblib}!make\_transform\_iterator@{make\_transform\_iterator}}
\index{make\_transform\_iterator@{make\_transform\_iterator}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{make\_transform\_iterator()}{make\_transform\_iterator()}}
{\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\
auto kblib\+::make\+\_\+transform\+\_\+iterator (\begin{DoxyParamCaption}\item[{base\+\_\+iterator}]{it,  }\item[{operation}]{op }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}}$<$base\+\_\+iterator, operation$>$ \hspace{0.3cm}{\ttfamily [noexcept]}}



Factory function to make transform\+\_\+iterators. 


\begin{DoxyParams}{Parameters}
{\em it} & An Input\+Iterator to a range to transform. \\
\hline
{\em op} & The transformation to apply. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
transform\+\_\+iterator$<$base\+\_\+iterator, operation$>$
\end{DoxyReturn}
\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000002}{Deprecated}}]Use transformer instead \end{DoxyRefDesc}


Definition at line \mbox{\hyperlink{iterators_8h_source_l01298}{1298}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_a1490492d82c28f195f0f44a9d88fb2cc}\label{namespacekblib_a1490492d82c28f195f0f44a9d88fb2cc}} 
\index{kblib@{kblib}!map@{map}}
\index{map@{map}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{map()}{map()}}
{\footnotesize\ttfamily template$<$typename F , typename... T$>$ \\
auto kblib\+::map (\begin{DoxyParamCaption}\item[{F}]{f,  }\item[{T \&\&...}]{t }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$         not \mbox{\hyperlink{namespacekblib_aba974d3674b8fe6b1cf75e16a66322f0}{any\+\_\+void}}$<$decltype(\mbox{\hyperlink{namespacekblib_a3873199be1651ec4e0fda92171b2b82c}{kblib\+::apply}}(f, std\+::forward$<$T$>$(t)))...$>$,         decltype(std\+::tuple\{\mbox{\hyperlink{namespacekblib_a3873199be1651ec4e0fda92171b2b82c}{kblib\+::apply}}(f, std\+::forward$<$T$>$(t))...\})$>$ \hspace{0.3cm}{\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{simple_8h_source_l00075}{75}} of file \mbox{\hyperlink{simple_8h_source}{simple.\+h}}.

\mbox{\Hypertarget{namespacekblib_a5a05c4dad317da381751c694a4b69c52}\label{namespacekblib_a5a05c4dad317da381751c694a4b69c52}} 
\index{kblib@{kblib}!max\_count\_digits@{max\_count\_digits}}
\index{max\_count\_digits@{max\_count\_digits}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{max\_count\_digits()}{max\_count\_digits()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Forward\+It $>$ \\
auto kblib\+::max\+\_\+count\+\_\+digits (\begin{DoxyParamCaption}\item[{Forward\+It}]{first,  }\item[{Forward\+It}]{last }\end{DoxyParamCaption}) -\/$>$ int }



Returns the necessary number of digits to represent the largest value in an input range. 


\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the input range. \\
\hline
{\em last} & The end of the input range. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
int The necessary number of digits to represent any value in the input. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{format_8h_source_l00130}{130}} of file \mbox{\hyperlink{format_8h_source}{format.\+h}}.

\mbox{\Hypertarget{namespacekblib_a79bdc41eaf5235864ea333ebe30e7c36}\label{namespacekblib_a79bdc41eaf5235864ea333ebe30e7c36}} 
\index{kblib@{kblib}!max\_count\_digits@{max\_count\_digits}}
\index{max\_count\_digits@{max\_count\_digits}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{max\_count\_digits()}{max\_count\_digits()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Forward\+It $>$ \\
auto kblib\+::max\+\_\+count\+\_\+digits (\begin{DoxyParamCaption}\item[{Forward\+It}]{first,  }\item[{Forward\+It}]{last,  }\item[{int}]{base }\end{DoxyParamCaption}) -\/$>$ int }



Returns the necessary number of digits to represent the largest value in an input range. 


\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the input range. \\
\hline
{\em last} & The end of the input range. \\
\hline
{\em base} & The base to be used for calculation. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
int The necessary number of digits to represent any value in the input. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{format_8h_source_l00148}{148}} of file \mbox{\hyperlink{format_8h_source}{format.\+h}}.

\mbox{\Hypertarget{namespacekblib_a7d43c2f73a1e2d35ca150b9ac3a43d58}\label{namespacekblib_a7d43c2f73a1e2d35ca150b9ac3a43d58}} 
\index{kblib@{kblib}!max\_element@{max\_element}}
\index{max\_element@{max\_element}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{max\_element()}{max\_element()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Container , typename Comp  = std\+::less$<$value\+\_\+type\+\_\+linear\+\_\+t$<$\+Container$>$$>$$>$ \\
auto kblib\+::max\+\_\+element (\begin{DoxyParamCaption}\item[{Container \&}]{c,  }\item[{Comp}]{comp }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_ac04bc7261d579d570a3847df654bc209}{value\+\_\+type\+\_\+linear\+\_\+t}}$<$Container$>$$\ast$ }



Definition at line \mbox{\hyperlink{iterators_8h_source_l00078}{78}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_a85f026b89c516de43393ab0259c1c834}\label{namespacekblib_a85f026b89c516de43393ab0259c1c834}} 
\index{kblib@{kblib}!max\_element@{max\_element}}
\index{max\_element@{max\_element}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{max\_element()}{max\_element()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Forward\+It , typename End\+It , typename Compare  = std\+::less$<$$>$$>$ \\
constexpr auto kblib\+::max\+\_\+element (\begin{DoxyParamCaption}\item[{Forward\+It}]{first,  }\item[{End\+It}]{last,  }\item[{Compare}]{comp = {\ttfamily \{\}} }\end{DoxyParamCaption}) -\/$>$ Forward\+It \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l01109}{1109}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a240472ec40bbae42961817f5985de54e}\label{namespacekblib_a240472ec40bbae42961817f5985de54e}} 
\index{kblib@{kblib}!memswap@{memswap}}
\index{memswap@{memswap}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{memswap()}{memswap()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily constexpr auto kblib\+::memswap (\begin{DoxyParamCaption}\item[{unsigned char $\ast$}]{A,  }\item[{unsigned char $\ast$}]{B,  }\item[{std\+::size\+\_\+t}]{size }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Swaps memory ranges. 

\begin{DoxyPrecond}{Precondition}
A and B must not be null. 

$\ast$A and $\ast$B must not overlap.
\end{DoxyPrecond}

\begin{DoxyParams}{Parameters}
{\em A} & A pointer to memory to swap with $\ast$B. \\
\hline
{\em B} & A pointer to memory to swap with $\ast$A. \\
\hline
{\em size} & The number of bytes to swap between $\ast$A and $\ast$B. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{bits_8h_source_l00394}{394}} of file \mbox{\hyperlink{bits_8h_source}{bits.\+h}}.

\mbox{\Hypertarget{namespacekblib_a325b7ea3dc60a54c9b341e7851f94bcb}\label{namespacekblib_a325b7ea3dc60a54c9b341e7851f94bcb}} 
\index{kblib@{kblib}!memswap@{memswap}}
\index{memswap@{memswap}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{memswap()}{memswap()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily auto kblib\+::memswap (\begin{DoxyParamCaption}\item[{void $\ast$}]{A,  }\item[{void $\ast$}]{B,  }\item[{std\+::size\+\_\+t}]{size }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Swaps memory ranges. 

\begin{DoxyPrecond}{Precondition}
A and B must not be null. 

$\ast$A and $\ast$B must not overlap.
\end{DoxyPrecond}

\begin{DoxyParams}{Parameters}
{\em A} & A pointer to memory to swap with $\ast$B. \\
\hline
{\em B} & A pointer to memory to swap with $\ast$A. \\
\hline
{\em size} & The number of bytes to swap between $\ast$A and $\ast$B. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{bits_8h_source_l00412}{412}} of file \mbox{\hyperlink{bits_8h_source}{bits.\+h}}.

\mbox{\Hypertarget{namespacekblib_a1c69e2ede07e021b4a480b78496912e2}\label{namespacekblib_a1c69e2ede07e021b4a480b78496912e2}} 
\index{kblib@{kblib}!nl@{nl}}
\index{nl@{nl}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{nl()}{nl()}}
{\footnotesize\ttfamily template$<$typename CharT , typename Traits $>$ \\
auto kblib\+::nl (\begin{DoxyParamCaption}\item[{std\+::basic\+\_\+istream$<$ CharT, Traits $>$ \&}]{is }\end{DoxyParamCaption}) -\/$>$ std\+::basic\+\_\+istream$<$CharT, Traits$>$\& }



Read in spaces until the end of the line is found. 

nl may be used to consume whitespace left over after a formatted input operation before doing an unformatted input operation (such as std\+::getline).

\begin{DoxyRemark}{Remarks}
Example usage\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordtype}{int} x\{\};}
\DoxyCodeLine{std::cout << \textcolor{stringliteral}{"{}Enter a number: "{}};}
\DoxyCodeLine{std::cin >> x; \textcolor{comment}{// potentially leaves a new line in the stream}}
\DoxyCodeLine{std::cout << \textcolor{stringliteral}{"{}Got "{}} << x << \textcolor{charliteral}{'\(\backslash\)n'};}
\DoxyCodeLine{std::string str;}
\DoxyCodeLine{std::cout << \textcolor{stringliteral}{"{}Enter a line of text: "{}};}
\DoxyCodeLine{\mbox{\hyperlink{namespacekblib_a8ec120cbc5e4f7c1624f07e48660b7f9}{std::getline}}(std::cin >> \mbox{\hyperlink{namespacekblib_a1c69e2ede07e021b4a480b78496912e2}{kblib::nl}}, str);}
\DoxyCodeLine{std::cout << \textcolor{stringliteral}{"{}Got "{}} << \mbox{\hyperlink{namespacekblib_a63baa5a83839bafa605866cd558a66aa}{std::quoted}}(str) << \textcolor{charliteral}{'\(\backslash\)n'};}

\end{DoxyCode}

\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em is} & The stream to read from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
std\+::istream\& is. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{io_8h_source_l00212}{212}} of file \mbox{\hyperlink{io_8h_source}{io.\+h}}.

\mbox{\Hypertarget{namespacekblib_aad79cff7fa01a4ed3d85b83b419cab08}\label{namespacekblib_aad79cff7fa01a4ed3d85b83b419cab08}} 
\index{kblib@{kblib}!none\_of@{none\_of}}
\index{none\_of@{none\_of}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{none\_of()}{none\_of()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::none\+\_\+of (\begin{DoxyParamCaption}\item[{Input\+It}]{begin,  }\item[{Input\+It}]{end,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$Input\+It$>$\+::value, bool$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Determine if pred is false for every element of the range. 



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00997}{997}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae58938274f29202b1a8c9b07f98ed912}\label{namespacekblib_ae58938274f29202b1a8c9b07f98ed912}} 
\index{kblib@{kblib}!none\_of@{none\_of}}
\index{none\_of@{none\_of}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{none\_of()}{none\_of()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Range , typename Unary\+Predicate $>$ \\
constexpr auto kblib\+::none\+\_\+of (\begin{DoxyParamCaption}\item[{Range \&\&}]{rng,  }\item[{Unary\+Predicate}]{pred }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}}$<$Range$>$\+::value, bool$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Determine if pred is true for every element of the range. 



Definition at line \mbox{\hyperlink{algorithm_8h_source_l01011}{1011}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_afc76eb7c2cd74d00487dcfcf9f326c53}\label{namespacekblib_afc76eb7c2cd74d00487dcfcf9f326c53}} 
\index{kblib@{kblib}!noop@{noop}}
\index{noop@{noop}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{noop()}{noop()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
auto kblib\+::noop (\begin{DoxyParamCaption}\item[{void $\ast$}]{,  }\item[{const T $\ast$}]{ }\end{DoxyParamCaption}) -\/$>$ T$\ast$ \hspace{0.3cm}{\ttfamily [inline]}}



Does nothing; matches the copy construction signature. 



Definition at line \mbox{\hyperlink{poly__obj_8h_source_l00247}{247}} of file \mbox{\hyperlink{poly__obj_8h_source}{poly\+\_\+obj.\+h}}.

\mbox{\Hypertarget{namespacekblib_a26ab0d2883ebc03dffa0dabedfc7d906}\label{namespacekblib_a26ab0d2883ebc03dffa0dabedfc7d906}} 
\index{kblib@{kblib}!noop@{noop}}
\index{noop@{noop}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{noop()}{noop()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T , bool nothrow$>$ \\
auto kblib\+::noop (\begin{DoxyParamCaption}\item[{void $\ast$}]{,  }\item[{T $\ast$}]{ }\end{DoxyParamCaption}) -\/$>$ T$\ast$ \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Does nothing; matches the move construction signature. 



Definition at line \mbox{\hyperlink{poly__obj_8h_source_l00252}{252}} of file \mbox{\hyperlink{poly__obj_8h_source}{poly\+\_\+obj.\+h}}.

\mbox{\Hypertarget{namespacekblib_abb6b875ecf3a38a03dcd0b15aca7a0ea}\label{namespacekblib_abb6b875ecf3a38a03dcd0b15aca7a0ea}} 
\index{kblib@{kblib}!operator\&@{operator\&}}
\index{operator\&@{operator\&}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{operator\&()}{operator\&()}}
{\footnotesize\ttfamily constexpr auto kblib\+::operator\& (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}}}]{l,  }\item[{\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}}}]{r }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}} \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{poly__obj_8h_source_l00054}{54}} of file \mbox{\hyperlink{poly__obj_8h_source}{poly\+\_\+obj.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae2779c90b5c731d209e9cc1f555a18de}\label{namespacekblib_ae2779c90b5c731d209e9cc1f555a18de}} 
\index{kblib@{kblib}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{operator$\ast$()}{operator*()}}
{\footnotesize\ttfamily constexpr auto kblib\+::operator$\ast$ (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}}}]{l,  }\item[{bool}]{r }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}} \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{poly__obj_8h_source_l00060}{60}} of file \mbox{\hyperlink{poly__obj_8h_source}{poly\+\_\+obj.\+h}}.

\mbox{\Hypertarget{namespacekblib_a5127cbe40846f5ab2a05694de92d3d2e}\label{namespacekblib_a5127cbe40846f5ab2a05694de92d3d2e}} 
\index{kblib@{kblib}!operator+@{operator+}}
\index{operator+@{operator+}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{operator+()}{operator+()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr auto kblib\+::operator+ (\begin{DoxyParamCaption}\item[{T}]{val,  }\item[{\mbox{\hyperlink{structkblib_1_1adjuster}{adjuster}}}]{a }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$not \mbox{\hyperlink{structkblib_1_1detail__iterators_1_1is__addable}{detail\+\_\+iterators\+::is\+\_\+addable}}$<$T, std\+::ptrdiff\+\_\+t$>$\+::value,                    decltype(std\+::advance(val, a.\+adj))$>$ \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{iterators_8h_source_l00553}{553}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab8c4154f71801dac0f43dcb2e1869e8b}\label{namespacekblib_ab8c4154f71801dac0f43dcb2e1869e8b}} 
\index{kblib@{kblib}!operator+@{operator+}}
\index{operator+@{operator+}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{operator+()}{operator+()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr auto kblib\+::operator+ (\begin{DoxyParamCaption}\item[{T}]{val,  }\item[{\mbox{\hyperlink{structkblib_1_1decrementer}{decrementer}}}]{ }\end{DoxyParamCaption}) -\/$>$ T \hspace{0.3cm}{\ttfamily [constexpr]}}



Decrements val. 



Definition at line \mbox{\hyperlink{iterators_8h_source_l00606}{606}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab797e9d5c5989c277312518fc95667ae}\label{namespacekblib_ab797e9d5c5989c277312518fc95667ae}} 
\index{kblib@{kblib}!operator+@{operator+}}
\index{operator+@{operator+}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{operator+()}{operator+()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr auto kblib\+::operator+ (\begin{DoxyParamCaption}\item[{T}]{val,  }\item[{\mbox{\hyperlink{structkblib_1_1incrementer}{incrementer}}}]{ }\end{DoxyParamCaption}) -\/$>$ T \hspace{0.3cm}{\ttfamily [constexpr]}}



Increments val. 



Definition at line \mbox{\hyperlink{iterators_8h_source_l00581}{581}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_a13dd6e6d415d913d810092d9b575fd6b}\label{namespacekblib_a13dd6e6d415d913d810092d9b575fd6b}} 
\index{kblib@{kblib}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}}
{\footnotesize\ttfamily template$<$typename F , typename CharT , typename Tr $>$ \\
std\+::basic\+\_\+ostream$<$ CharT, Tr $>$ \& kblib\+::operator$<$$<$ (\begin{DoxyParamCaption}\item[{std\+::basic\+\_\+ostream$<$ CharT, Tr $>$ \&}]{is,  }\item[{\mbox{\hyperlink{structkblib_1_1get__manip}{get\+\_\+manip}}$<$ F $>$}]{func }\end{DoxyParamCaption})}



Actually calls the manipulator. 



Definition at line \mbox{\hyperlink{io_8h_source_l00373}{373}} of file \mbox{\hyperlink{io_8h_source}{io.\+h}}.

\mbox{\Hypertarget{namespacekblib_af2086a9685efdca3d6b066f16a4fa4df}\label{namespacekblib_af2086a9685efdca3d6b066f16a4fa4df}} 
\index{kblib@{kblib}!operator$>$$>$@{operator$>$$>$}}
\index{operator$>$$>$@{operator$>$$>$}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{operator$>$$>$()}{operator>>()}}
{\footnotesize\ttfamily template$<$typename F , typename CharT , typename Tr $>$ \\
std\+::basic\+\_\+istream$<$ CharT, Tr $>$ \& kblib\+::operator$>$$>$ (\begin{DoxyParamCaption}\item[{std\+::basic\+\_\+istream$<$ CharT, Tr $>$ \&}]{is,  }\item[{\mbox{\hyperlink{structkblib_1_1get__manip}{get\+\_\+manip}}$<$ F $>$}]{func }\end{DoxyParamCaption})}



Actually calls the manipulator. 



Definition at line \mbox{\hyperlink{io_8h_source_l00373}{373}} of file \mbox{\hyperlink{io_8h_source}{io.\+h}}.

\mbox{\Hypertarget{namespacekblib_a5027ae40714e0bac3fbc7498f9875783}\label{namespacekblib_a5027ae40714e0bac3fbc7498f9875783}} 
\index{kblib@{kblib}!operator\texttt{"|}@{operator\texttt{"|}}}
\index{operator\texttt{"|}@{operator\texttt{"|}}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{operator\texttt{"|}()}{operator|()}}
{\footnotesize\ttfamily constexpr auto kblib\+::operator$\vert$ (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}}}]{l,  }\item[{\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}}}]{r }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}} \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{poly__obj_8h_source_l00048}{48}} of file \mbox{\hyperlink{poly__obj_8h_source}{poly\+\_\+obj.\+h}}.

\mbox{\Hypertarget{namespacekblib_a269228ff0b3ecfd65167e5b4420a85b5}\label{namespacekblib_a269228ff0b3ecfd65167e5b4420a85b5}} 
\index{kblib@{kblib}!parse\_integer@{parse\_integer}}
\index{parse\_integer@{parse\_integer}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{parse\_integer()}{parse\_integer()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily template$<$typename Result $>$ \\
constexpr auto kblib\+::parse\+\_\+integer (\begin{DoxyParamCaption}\item[{const char $\ast$}]{begin,  }\item[{const char $\ast$}]{end,  }\item[{int}]{base = {\ttfamily 0} }\end{DoxyParamCaption}) -\/$>$ Result \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{convert_8h_source_l00148}{148}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_a285ebb5d09f6f36d091e1c25293969d9}\label{namespacekblib_a285ebb5d09f6f36d091e1c25293969d9}} 
\index{kblib@{kblib}!parse\_integer@{parse\_integer}}
\index{parse\_integer@{parse\_integer}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{parse\_integer()}{parse\_integer()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily template$<$typename Result , std\+::size\+\_\+t N$>$ \\
constexpr auto kblib\+::parse\+\_\+integer (\begin{DoxyParamCaption}\item[{const char(\&)}]{in\mbox{[}\+N\mbox{]},  }\item[{int}]{base = {\ttfamily 0} }\end{DoxyParamCaption}) -\/$>$ Result \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{convert_8h_source_l00194}{194}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_a85f95750656f07f1a99315e67cdb359e}\label{namespacekblib_a85f95750656f07f1a99315e67cdb359e}} 
\index{kblib@{kblib}!parse\_integer@{parse\_integer}}
\index{parse\_integer@{parse\_integer}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{parse\_integer()}{parse\_integer()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily template$<$typename Result $>$ \\
constexpr auto kblib\+::parse\+\_\+integer (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{in,  }\item[{int}]{base = {\ttfamily 0} }\end{DoxyParamCaption}) -\/$>$ Result \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{convert_8h_source_l00202}{202}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_a58a6e469a0449b408a7fbaf12bc49551}\label{namespacekblib_a58a6e469a0449b408a7fbaf12bc49551}} 
\index{kblib@{kblib}!parse\_integer@{parse\_integer}}
\index{parse\_integer@{parse\_integer}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{parse\_integer()}{parse\_integer()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily template$<$typename Result $>$ \\
constexpr auto kblib\+::parse\+\_\+integer (\begin{DoxyParamCaption}\item[{std\+::string\+\_\+view}]{in,  }\item[{int}]{base = {\ttfamily 0} }\end{DoxyParamCaption}) -\/$>$ Result \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{convert_8h_source_l00211}{211}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_a92ed80d087175fc1c71cb1894b55671a}\label{namespacekblib_a92ed80d087175fc1c71cb1894b55671a}} 
\index{kblib@{kblib}!phi@{phi}}
\index{phi@{phi}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{phi()}{phi()}}
{\footnotesize\ttfamily template$<$typename T  = double$>$ \\
constexpr auto kblib\+::phi (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ T \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{stats_8h_source_l00476}{476}} of file \mbox{\hyperlink{stats_8h_source}{stats.\+h}}.

\mbox{\Hypertarget{namespacekblib_a6a405377fe79d25ae9ef7a306ee0a32c}\label{namespacekblib_a6a405377fe79d25ae9ef7a306ee0a32c}} 
\index{kblib@{kblib}!pi@{pi}}
\index{pi@{pi}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{pi()}{pi()}}
{\footnotesize\ttfamily template$<$typename T  = double$>$ \\
constexpr auto kblib\+::pi (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ T \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{stats_8h_source_l00460}{460}} of file \mbox{\hyperlink{stats_8h_source}{stats.\+h}}.

\mbox{\Hypertarget{namespacekblib_a377adf58727d546906018e9e2675b98c}\label{namespacekblib_a377adf58727d546906018e9e2675b98c}} 
\index{kblib@{kblib}!poly\_warn\_if@{poly\_warn\_if}}
\index{poly\_warn\_if@{poly\_warn\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{poly\_warn\_if()}{poly\_warn\_if()}}
{\footnotesize\ttfamily template$<$bool warn$>$ \\
constexpr auto kblib\+::poly\+\_\+warn\+\_\+if (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ std\+::nullptr\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{poly__obj_8h_source_l01084}{1084}} of file \mbox{\hyperlink{poly__obj_8h_source}{poly\+\_\+obj.\+h}}.

\mbox{\Hypertarget{namespacekblib_a500de2a9e580338a753636936fd7d533}\label{namespacekblib_a500de2a9e580338a753636936fd7d533}} 
\index{kblib@{kblib}!poly\_warn\_if$<$ true $>$@{poly\_warn\_if$<$ true $>$}}
\index{poly\_warn\_if$<$ true $>$@{poly\_warn\_if$<$ true $>$}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{poly\_warn\_if$<$ true $>$()}{poly\_warn\_if< true >()}}
{\footnotesize\ttfamily template$<$$>$ \\
constexpr auto \mbox{\hyperlink{namespacekblib_a377adf58727d546906018e9e2675b98c}{kblib\+::poly\+\_\+warn\+\_\+if}}$<$ true $>$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ std\+::nullptr\+\_\+t \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{poly__obj_8h_source_l01091}{1091}} of file \mbox{\hyperlink{poly__obj_8h_source}{poly\+\_\+obj.\+h}}.

\mbox{\Hypertarget{namespacekblib_ad505bc6a8318d39ac08f85bf9a8cddbb}\label{namespacekblib_ad505bc6a8318d39ac08f85bf9a8cddbb}} 
\index{kblib@{kblib}!pop@{pop}}
\index{pop@{pop}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{pop()}{pop()}}
{\footnotesize\ttfamily template$<$typename C $>$ \\
constexpr auto kblib\+::pop (\begin{DoxyParamCaption}\item[{C \&}]{s }\end{DoxyParamCaption}) -\/$>$ typename C\+::value\+\_\+type \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{containers_8h_source_l00050}{50}} of file \mbox{\hyperlink{containers_8h_source}{containers.\+h}}.

\mbox{\Hypertarget{namespacekblib_aa279b601e1bea7b5ae3f50954d398bb2}\label{namespacekblib_aa279b601e1bea7b5ae3f50954d398bb2}} 
\index{kblib@{kblib}!quantize\_range@{quantize\_range}}
\index{quantize\_range@{quantize\_range}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{quantize\_range()}{quantize\_range()}}
{\footnotesize\ttfamily template$<$typename T , typename F $>$ \\
constexpr auto kblib\+::quantize\+\_\+range (\begin{DoxyParamCaption}\item[{F}]{low,  }\item[{F}]{high,  }\item[{F}]{val }\end{DoxyParamCaption}) -\/$>$ T \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Quantize a real-\/valued value into a discrete integer. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & An unsigned integral type. \\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em min} & The real value corresponding to min in the output. \\
\hline
{\em max} & The real value corresponding to max in the output. \\
\hline
{\em val} & The input value. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The quantized value of the input. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stats_8h_source_l00553}{553}} of file \mbox{\hyperlink{stats_8h_source}{stats.\+h}}.

\mbox{\Hypertarget{namespacekblib_a21af775319a41ef201e83f51c227f66a}\label{namespacekblib_a21af775319a41ef201e83f51c227f66a}} 
\index{kblib@{kblib}!quantize\_step@{quantize\_step}}
\index{quantize\_step@{quantize\_step}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{quantize\_step()}{quantize\_step()}}
{\footnotesize\ttfamily template$<$typename T , typename F $>$ \\
constexpr auto kblib\+::quantize\+\_\+step (\begin{DoxyParamCaption}\item[{F}]{low,  }\item[{F}]{delta,  }\item[{F}]{val }\end{DoxyParamCaption}) -\/$>$ T \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Quantize a real-\/valued value into a discrete integer. 

TODO(killerbee13)\+: write tests and fix style issues for quantization functions


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & An unsigned integral type. \\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em min} & The real value corresponding to 0 in the output. \\
\hline
{\em delta} & The difference between quantization steps. \\
\hline
{\em val} & The input value. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The quantized value of the input. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stats_8h_source_l00537}{537}} of file \mbox{\hyperlink{stats_8h_source}{stats.\+h}}.

\mbox{\Hypertarget{namespacekblib_a63baa5a83839bafa605866cd558a66aa}\label{namespacekblib_a63baa5a83839bafa605866cd558a66aa}} 
\index{kblib@{kblib}!quoted@{quoted}}
\index{quoted@{quoted}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{quoted()}{quoted()}}
{\footnotesize\ttfamily template$<$typename string $>$ \\
auto kblib\+::quoted (\begin{DoxyParamCaption}\item[{string \&\&}]{in }\end{DoxyParamCaption}) -\/$>$ std\+::string }



Definition at line \mbox{\hyperlink{convert_8h_source_l00609}{609}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac136a707b14a83235d82c267830f0cd9}\label{namespacekblib_ac136a707b14a83235d82c267830f0cd9}} 
\index{kblib@{kblib}!range@{range}}
\index{range@{range}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{range()}{range()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Value $>$ \\
constexpr auto kblib\+::range (\begin{DoxyParamCaption}\item[{Value}]{max }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{classkblib_1_1range__t}{range\+\_\+t}}$<$Value, \mbox{\hyperlink{structkblib_1_1incrementer}{incrementer}}$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Constructs a half-\/open range \mbox{[}0, max). The step is automatically determined based on the sign of max. 


\begin{DoxyParams}{Parameters}
{\em max} & The first value not in the produced range. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
range\+\_\+t$<$\+Value, int$>$ An iterable range \mbox{[}0, max). 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{iterators_8h_source_l00642}{642}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_a72690688922a2d4ae9a3e46ff0c1a9a9}\label{namespacekblib_a72690688922a2d4ae9a3e46ff0c1a9a9}} 
\index{kblib@{kblib}!range@{range}}
\index{range@{range}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{range()}{range()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta  = int$>$ \\
constexpr auto kblib\+::range (\begin{DoxyParamCaption}\item[{Value}]{min,  }\item[{Value}]{max,  }\item[{Delta}]{step = {\ttfamily 0} }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{classkblib_1_1range__t}{range\+\_\+t}}$<$Value, Delta$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Constructs a range from beginning, end, and step amount. The range is half-\/open, that is min is in the range but max is not. If unspecified, the step is automatically either 1 or -\/1, depending on whether max \texorpdfstring{$>$}{>} min. 


\begin{DoxyParams}{Parameters}
{\em min} & The first value in the produced range. \\
\hline
{\em max} & The first value not in the produced range. \\
\hline
{\em step} & The difference between values in the produced range. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
range\+\_\+t$<$\+Value, Delta$>$ An iterable range \mbox{[}min, max). 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{iterators_8h_source_l00621}{621}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_a9bfc51ee4b1118cf5effed3d4ae9dfed}\label{namespacekblib_a9bfc51ee4b1118cf5effed3d4ae9dfed}} 
\index{kblib@{kblib}!remove\_null\_terminator@{remove\_null\_terminator}}
\index{remove\_null\_terminator@{remove\_null\_terminator}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{remove\_null\_terminator()}{remove\_null\_terminator()}}
{\footnotesize\ttfamily template$<$int N, typename Indices  = std\+::make\+\_\+integer\+\_\+sequence$<$int, N -\/ 1$>$$>$ \\
constexpr auto kblib\+::remove\+\_\+null\+\_\+terminator (\begin{DoxyParamCaption}\item[{const char(\&)}]{arr\mbox{[}\+N\mbox{]} }\end{DoxyParamCaption}) -\/$>$ std\+::array$<$char, N -\/ 1$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Creates an array of only the meaningful characters in a string literal, and not the null terminator. 


\begin{DoxyParams}{Parameters}
{\em arr} & A string literal to strip the null terminator from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
std\+::array\texorpdfstring{$<$}{<}char, N -\/ 1\texorpdfstring{$>$}{>} A std\+::array of the meaningful characters of the string literal. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{traits_8h_source_l00135}{135}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae53be72bf8b3efff5d7a930ea6886cc0}\label{namespacekblib_ae53be72bf8b3efff5d7a930ea6886cc0}} 
\index{kblib@{kblib}!repeat@{repeat}}
\index{repeat@{repeat}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{repeat()}{repeat()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily auto kblib\+::repeat (\begin{DoxyParamCaption}\item[{char}]{val,  }\item[{std\+::size\+\_\+t}]{count }\end{DoxyParamCaption}) -\/$>$ std\+::string \hspace{0.3cm}{\ttfamily [inline]}}



Construct a string consisting of count copies of val. 

This function is a trivial wrapper around a constructor of std\+::string provided for symmetry with the above overload.


\begin{DoxyParams}{Parameters}
{\em val} & The character to be repeated. \\
\hline
{\em count} & The number of times to repeat val. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00639}{639}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_afc6af3c7ee821bb25dd692bd2fc92adb}\label{namespacekblib_afc6af3c7ee821bb25dd692bd2fc92adb}} 
\index{kblib@{kblib}!repeat@{repeat}}
\index{repeat@{repeat}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{repeat()}{repeat()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename Callable $>$ \\
constexpr auto kblib\+::repeat (\begin{DoxyParamCaption}\item[{std\+::size\+\_\+t}]{N,  }\item[{Callable}]{func }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_acdb4473ef9196a18a0e37e05171729f0}{return\+\_\+assert\+\_\+t}}$<$\mbox{\hyperlink{structkblib_1_1fakestd_1_1is__invocable}{is\+\_\+invocable}}$<$Callable$>$\+::value, void$>$ \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Invoke a function N times. 


\begin{DoxyParams}{Parameters}
{\em N} & The number of times to invoke func. \\
\hline
{\em func} & The function to invoke. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00053}{53}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a5666bcdc72292d36178a604c518c1ba8}\label{namespacekblib_a5666bcdc72292d36178a604c518c1ba8}} 
\index{kblib@{kblib}!repeat@{repeat}}
\index{repeat@{repeat}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{repeat()}{repeat()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename string $>$ \\
auto kblib\+::repeat (\begin{DoxyParamCaption}\item[{string}]{val,  }\item[{std\+::size\+\_\+t}]{count }\end{DoxyParamCaption}) -\/$>$ string }



Construct a string consisting of count copies of val concatenated together. 

This function currently works greedily and will be inefficient for large values of count.


\begin{DoxyParams}{Parameters}
{\em val} & \\
\hline
{\em count} & \\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000002}{Todo}}]Defer constrution of a string with a class. \end{DoxyRefDesc}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00622}{622}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a3a46a1cf64ac97bdc6b5d7fe0571f38f}\label{namespacekblib_a3a46a1cf64ac97bdc6b5d7fe0571f38f}} 
\index{kblib@{kblib}!replace\_copy\_if@{replace\_copy\_if}}
\index{replace\_copy\_if@{replace\_copy\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{replace\_copy\_if()}{replace\_copy\_if()}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename End\+It , typename Output\+It , typename Unary\+Predicate , typename T $>$ \\
constexpr auto kblib\+::replace\+\_\+copy\+\_\+if (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{End\+It}]{last,  }\item[{Output\+It}]{out,  }\item[{Unary\+Predicate}]{pred,  }\item[{const T \&}]{new\+\_\+value }\end{DoxyParamCaption}) -\/$>$ Output\+It \hspace{0.3cm}{\ttfamily [constexpr]}}



Copies an input range, but every element for which pred is true is replaced by new\+\_\+value. It also allows for a sentinel end iterator. 

\begin{DoxyRemark}{Remarks}
This function is {\ttfamily constexpr} in C++14.
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the input range. \\
\hline
{\em last} & The end of the input range. \\
\hline
{\em out} & The beginning of the output range. \\
\hline
{\em pred} & The predicate to apply. \\
\hline
{\em new\+\_\+value} & The value to replace those elements for which pred is true with. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An iterator to past the last element written. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l01413}{1413}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_aaabe9f5328918c0b6e44df29782e7ae1}\label{namespacekblib_aaabe9f5328918c0b6e44df29782e7ae1}} 
\index{kblib@{kblib}!replace\_copy\_n\_if@{replace\_copy\_n\_if}}
\index{replace\_copy\_n\_if@{replace\_copy\_n\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{replace\_copy\_n\_if()}{replace\_copy\_n\_if()}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename Size , typename Output\+It , typename Unary\+Predicate , typename T $>$ \\
constexpr auto kblib\+::replace\+\_\+copy\+\_\+n\+\_\+if (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Size}]{count,  }\item[{Output\+It}]{out,  }\item[{Unary\+Predicate}]{pred,  }\item[{const T \&}]{new\+\_\+value }\end{DoxyParamCaption}) -\/$>$ Output\+It \hspace{0.3cm}{\ttfamily [constexpr]}}



Copies an input range, but every element for which pred is true is replaced by new\+\_\+value. 

\begin{DoxyRemark}{Remarks}
This function is {\ttfamily constexpr} in C++14.
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the input range. \\
\hline
{\em count} & The number of elements to copy. \\
\hline
{\em out} & The beginning of the output range. \\
\hline
{\em pred} & The predicate to apply. \\
\hline
{\em new\+\_\+value} & The value to replace those elements for which pred is true with. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Output\+It An iterator to past the last element written. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l01444}{1444}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a91ab01237b8d6ef57f55a74300815c6e}\label{namespacekblib_a91ab01237b8d6ef57f55a74300815c6e}} 
\index{kblib@{kblib}!reverse\_str@{reverse\_str}}
\index{reverse\_str@{reverse\_str}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{reverse\_str()}{reverse\_str()}}
{\footnotesize\ttfamily template$<$typename string $>$ \\
auto kblib\+::reverse\+\_\+str (\begin{DoxyParamCaption}\item[{string}]{val }\end{DoxyParamCaption}) -\/$>$ string }



Reverses all the elements of its input. 

\begin{DoxyAttention}{Attention}
This function will not behave correctly with multibyte character encodings.
\end{DoxyAttention}

\begin{DoxyParams}{Parameters}
{\em val} & The string to reverse. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
string The reversed range. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00552}{552}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a34b4ea421aff0111137a362312e102b3}\label{namespacekblib_a34b4ea421aff0111137a362312e102b3}} 
\index{kblib@{kblib}!root\_2@{root\_2}}
\index{root\_2@{root\_2}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{root\_2()}{root\_2()}}
{\footnotesize\ttfamily template$<$typename T  = double$>$ \\
constexpr auto kblib\+::root\+\_\+2 (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ T \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{stats_8h_source_l00472}{472}} of file \mbox{\hyperlink{stats_8h_source}{stats.\+h}}.

\mbox{\Hypertarget{namespacekblib_abe51624618b4a7c9f20e295b8c89bf47}\label{namespacekblib_abe51624618b4a7c9f20e295b8c89bf47}} 
\index{kblib@{kblib}!rotate@{rotate}}
\index{rotate@{rotate}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{rotate()}{rotate()}}
{\footnotesize\ttfamily template$<$class Forward\+It $>$ \\
constexpr auto kblib\+::rotate (\begin{DoxyParamCaption}\item[{Forward\+It}]{first,  }\item[{Forward\+It}]{n\+\_\+first,  }\item[{Forward\+It}]{last }\end{DoxyParamCaption}) -\/$>$ Forward\+It \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Rotates the input range. This is just a constexpr-\/in-\/\+C++14 version of std\+::rotate. 


\begin{DoxyParams}{Parameters}
{\em first} & \\
\hline
{\em n\+\_\+first} & \\
\hline
{\em last} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Forward\+It 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l01509}{1509}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a535ff4e383fdfe8e07c637d574b68008}\label{namespacekblib_a535ff4e383fdfe8e07c637d574b68008}} 
\index{kblib@{kblib}!safe\_auto@{safe\_auto}}
\index{safe\_auto@{safe\_auto}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{safe\_auto()}{safe\_auto()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
auto kblib\+::safe\+\_\+auto (\begin{DoxyParamCaption}\item[{T \&\&}]{in }\end{DoxyParamCaption}) -\/$>$ T }



Safely propagate an xvalue or lvalue without dangling references. 



Definition at line \mbox{\hyperlink{simple_8h_source_l00217}{217}} of file \mbox{\hyperlink{simple_8h_source}{simple.\+h}}.

\mbox{\Hypertarget{namespacekblib_a5b06c53a850d4a275c26a068b907caeb}\label{namespacekblib_a5b06c53a850d4a275c26a068b907caeb}} 
\index{kblib@{kblib}!safe\_auto@{safe\_auto}}
\index{safe\_auto@{safe\_auto}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{safe\_auto()}{safe\_auto()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
auto kblib\+::safe\+\_\+auto (\begin{DoxyParamCaption}\item[{T \&}]{in }\end{DoxyParamCaption}) -\/$>$ T\& }



Safely propagate an xvalue or lvalue without dangling references. 



Definition at line \mbox{\hyperlink{simple_8h_source_l00225}{225}} of file \mbox{\hyperlink{simple_8h_source}{simple.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab43fe07bcd0ea78681fada07d8b9016b}\label{namespacekblib_ab43fe07bcd0ea78681fada07d8b9016b}} 
\index{kblib@{kblib}!saturating\_cast@{saturating\_cast}}
\index{saturating\_cast@{saturating\_cast}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{saturating\_cast()}{saturating\_cast()}}
{\footnotesize\ttfamily template$<$typename A , typename F $>$ \\
constexpr auto kblib\+::saturating\+\_\+cast (\begin{DoxyParamCaption}\item[{F}]{x }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$std\+::is\+\_\+integral$<$A$>$\+::value and std\+::is\+\_\+integral$<$F$>$\+::value                        and std\+::is\+\_\+unsigned$<$A$>$\+::value,                    A$>$ \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{stats_8h_source_l00482}{482}} of file \mbox{\hyperlink{stats_8h_source}{stats.\+h}}.

\mbox{\Hypertarget{namespacekblib_af0e8f19112bf1c9749dbc740205a500e}\label{namespacekblib_af0e8f19112bf1c9749dbc740205a500e}} 
\index{kblib@{kblib}!scoped\_file@{scoped\_file}}
\index{scoped\_file@{scoped\_file}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{scoped\_file()}{scoped\_file()}}
{\footnotesize\ttfamily template$<$typename File  = std\+::fstream$>$ \\
auto kblib\+::scoped\+\_\+file (\begin{DoxyParamCaption}\item[{const std\+::filesystem\+::path \&}]{path,  }\item[{std\+::ios\+\_\+base\+::openmode}]{mode = {\ttfamily std\+:\+:ios\+\_\+base\+:\+:in~$\vert$~std\+:\+:ios\+\_\+base\+:\+:out} }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{io_8h_source_l00555}{555}} of file \mbox{\hyperlink{io_8h_source}{io.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac237e40dd9be6a60c18b9b520b51e111}\label{namespacekblib_ac237e40dd9be6a60c18b9b520b51e111}} 
\index{kblib@{kblib}!search\_replace\_copy@{search\_replace\_copy}}
\index{search\_replace\_copy@{search\_replace\_copy}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{search\_replace\_copy()}{search\_replace\_copy()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Forward\+It1 , typename Forward\+It2 , typename Forward\+It3 , typename Output\+It , typename Binary\+Predicate  = std\+::equal\+\_\+to$<$$>$$>$ \\
constexpr auto kblib\+::search\+\_\+replace\+\_\+copy (\begin{DoxyParamCaption}\item[{Forward\+It1}]{h\+\_\+begin,  }\item[{Forward\+It1}]{h\+\_\+end,  }\item[{Forward\+It2}]{n\+\_\+begin,  }\item[{Forward\+It2}]{n\+\_\+end,  }\item[{Forward\+It3}]{r\+\_\+begin,  }\item[{Forward\+It3}]{r\+\_\+end,  }\item[{Output\+It}]{d\+\_\+begin,  }\item[{Binary\+Predicate}]{Compare = {\ttfamily \{\}} }\end{DoxyParamCaption}) -\/$>$ Output\+It \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l01462}{1462}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_abffc089ff2fee6d19613dc39cd47cfb5}\label{namespacekblib_abffc089ff2fee6d19613dc39cd47cfb5}} 
\index{kblib@{kblib}!search\_replace\_copy@{search\_replace\_copy}}
\index{search\_replace\_copy@{search\_replace\_copy}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{search\_replace\_copy()}{search\_replace\_copy()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Haystack , typename Needle , typename Replacement , typename Output\+It , typename Binary\+Predicate  = std\+::equal\+\_\+to$<$$>$$>$ \\
constexpr auto kblib\+::search\+\_\+replace\+\_\+copy (\begin{DoxyParamCaption}\item[{Haystack \&\&}]{haystack,  }\item[{Needle \&\&}]{needle,  }\item[{Replacement \&\&}]{replacement,  }\item[{Output\+It}]{d\+\_\+begin,  }\item[{Binary\+Predicate}]{compare = {\ttfamily \{\}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l01487}{1487}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a5057ba63335ea5487c0370c3ce5bc332}\label{namespacekblib_a5057ba63335ea5487c0370c3ce5bc332}} 
\index{kblib@{kblib}!seeded@{seeded}}
\index{seeded@{seeded}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{seeded()}{seeded()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Gen $>$ \\
auto kblib\+::seeded (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ Gen }



Definition at line \mbox{\hyperlink{random_8h_source_l00213}{213}} of file \mbox{\hyperlink{random_8h_source}{random.\+h}}.

\mbox{\Hypertarget{namespacekblib_a57f70c5d0b049085ef57f5e892834e64}\label{namespacekblib_a57f70c5d0b049085ef57f5e892834e64}} 
\index{kblib@{kblib}!seeded@{seeded}}
\index{seeded@{seeded}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{seeded()}{seeded()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Gen , typename Source $>$ \\
auto kblib\+::seeded (\begin{DoxyParamCaption}\item[{Source \&\&}]{s }\end{DoxyParamCaption}) -\/$>$ Gen }



Definition at line \mbox{\hyperlink{random_8h_source_l00206}{206}} of file \mbox{\hyperlink{random_8h_source}{random.\+h}}.

\mbox{\Hypertarget{namespacekblib_accb66942cbfbca80c254045501c96cc9}\label{namespacekblib_accb66942cbfbca80c254045501c96cc9}} 
\index{kblib@{kblib}!signed\_cast@{signed\_cast}}
\index{signed\_cast@{signed\_cast}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{signed\_cast()}{signed\_cast()}}
{\footnotesize\ttfamily template$<$typename A , typename F $>$ \\
constexpr auto kblib\+::signed\+\_\+cast (\begin{DoxyParamCaption}\item[{F}]{x }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$std\+::is\+\_\+integral$<$A$>$\+::value and std\+::is\+\_\+integral$<$F$>$\+::value                        and std\+::is\+\_\+signed$<$A$>$\+::value,                    std\+::make\+\_\+signed\+\_\+t$<$F$>$$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Cast argument to equivalently-\/sized type with the same signednessas the template parameter. 



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00602}{602}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae842572db70fc0a71d6ea2c2c33f3eff}\label{namespacekblib_ae842572db70fc0a71d6ea2c2c33f3eff}} 
\index{kblib@{kblib}!signed\_promote@{signed\_promote}}
\index{signed\_promote@{signed\_promote}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{signed\_promote()}{signed\_promote()}}
{\footnotesize\ttfamily template$<$typename N $>$ \\
constexpr auto kblib\+::signed\+\_\+promote (\begin{DoxyParamCaption}\item[{N}]{x }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_ace81df18accc355bebf9245f09107b51}{safe\+\_\+signed\+\_\+t}}$<$N$>$ \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00850}{850}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a0e74aee94f446396c8f8b7bf34b16acb}\label{namespacekblib_a0e74aee94f446396c8f8b7bf34b16acb}} 
\index{kblib@{kblib}!size@{size}}
\index{size@{size}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{size()}{size()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename C $>$ \\
constexpr auto kblib\+::size (\begin{DoxyParamCaption}\item[{const C \&}]{c }\end{DoxyParamCaption}) -\/$>$ decltype(c.\+size()) \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l01070}{1070}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a0b930fad0b5a938aea712565cec9037e}\label{namespacekblib_a0b930fad0b5a938aea712565cec9037e}} 
\index{kblib@{kblib}!size@{size}}
\index{size@{size}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{size()}{size()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T , std\+::size\+\_\+t N$>$ \\
constexpr auto kblib\+::size (\begin{DoxyParamCaption}\item[{const }]{T(\&)\mbox{[}\+N\mbox{]} }\end{DoxyParamCaption}) -\/$>$ std\+::size\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l01075}{1075}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a3b409f97a9a14760031484b8285f7534}\label{namespacekblib_a3b409f97a9a14760031484b8285f7534}} 
\index{kblib@{kblib}!sort@{sort}}
\index{sort@{sort}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{sort()}{sort()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Random\+Access\+It $>$ \\
constexpr auto kblib\+::sort (\begin{DoxyParamCaption}\item[{Random\+Access\+It}]{begin,  }\item[{Random\+Access\+It}]{end }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [constexpr]}}


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to sort \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{sort_8h_source_l00731}{731}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae0cd00a865682926e1053ece9dc8ccdb}\label{namespacekblib_ae0cd00a865682926e1053ece9dc8ccdb}} 
\index{kblib@{kblib}!sort@{sort}}
\index{sort@{sort}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{sort()}{sort()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Random\+Access\+It , typename Binary\+Predicate $>$ \\
constexpr auto kblib\+::sort (\begin{DoxyParamCaption}\item[{Random\+Access\+It}]{begin,  }\item[{Random\+Access\+It}]{end,  }\item[{Binary\+Predicate \&\&}]{compare }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [constexpr]}}



Sorts a range. 

Complexity\+: worst-\/case O(\+N log(\+N)), where N = std\+::distance(begin, end) comparisons and swaps.


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to sort\\
\hline
{\em compare} & A comparison predicate which returns true if the first argument shall be ordered before the second. Binary\+Predicate must meet the requirements of the Compare named requirement. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{sort_8h_source_l00715}{715}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}.

\mbox{\Hypertarget{namespacekblib_a49c4ab0021b9025dcc1ab803f35130a7}\label{namespacekblib_a49c4ab0021b9025dcc1ab803f35130a7}} 
\index{kblib@{kblib}!sort\_transform@{sort\_transform}}
\index{sort\_transform@{sort\_transform}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{sort\_transform()}{sort\_transform()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Random\+Access\+It , typename Unary\+Operation $>$ \\
constexpr auto kblib\+::sort\+\_\+transform (\begin{DoxyParamCaption}\item[{Random\+Access\+It}]{begin,  }\item[{Random\+Access\+It}]{end,  }\item[{Unary\+Operation \&\&}]{transform }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [constexpr]}}


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to sort \\
\hline
{\em transform} & The transformation to apply \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{sort_8h_source_l00691}{691}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}.

\mbox{\Hypertarget{namespacekblib_a7b871050bf43912f54b38ba4ecf027fe}\label{namespacekblib_a7b871050bf43912f54b38ba4ecf027fe}} 
\index{kblib@{kblib}!sort\_transform@{sort\_transform}}
\index{sort\_transform@{sort\_transform}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{sort\_transform()}{sort\_transform()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Random\+Access\+It , typename Unary\+Operation , typename Binary\+Predicate $>$ \\
constexpr auto kblib\+::sort\+\_\+transform (\begin{DoxyParamCaption}\item[{Random\+Access\+It}]{begin,  }\item[{Random\+Access\+It}]{end,  }\item[{Unary\+Operation \&\&}]{transform,  }\item[{Binary\+Predicate \&\&}]{compare }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [constexpr]}}



Sorts a range after applying a transformation. 

Complexity\+: worst-\/case O(\+N log(\+N)), where N = std\+::distance(begin, end) comparisons and swaps.


\begin{DoxyParams}{Parameters}
{\em begin,end} & The range to sort \\
\hline
{\em transform} & A transformer (such as unary function or pointer to member) which will be applied to each object before comparing it. A transformer may not modify the object it is called with.\\
\hline
{\em compare} & A comparison predicate which returns true if the first argument shall be ordered before the second. Binary\+Predicate must meet the requirements of the Compare named requirement. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{sort_8h_source_l00674}{674}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}.

\mbox{\Hypertarget{namespacekblib_aae5eb815715bae10bdcc0ea9475cfb7c}\label{namespacekblib_aae5eb815715bae10bdcc0ea9475cfb7c}} 
\index{kblib@{kblib}!split\_dsv@{split\_dsv}}
\index{split\_dsv@{split\_dsv}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{split\_dsv()}{split\_dsv()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Container  = std\+::vector$<$std\+::string$>$, typename String $>$ \\
auto kblib\+::split\+\_\+dsv (\begin{DoxyParamCaption}\item[{const String \&}]{str,  }\item[{char}]{delim }\end{DoxyParamCaption}) -\/$>$ Container }



Split a string on all instances of delim. 


\begin{DoxyParams}{Parameters}
{\em in} & The string to split \\
\hline
{\em delim} & The character to split on. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container A sequence container of all substrings in the split input. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00501}{501}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_acbe121310e870b5e6281ce2a300c47f6}\label{namespacekblib_acbe121310e870b5e6281ce2a300c47f6}} 
\index{kblib@{kblib}!split\_dsv@{split\_dsv}}
\index{split\_dsv@{split\_dsv}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{split\_dsv()}{split\_dsv()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Container  = std\+::vector$<$std\+::string$>$, typename String , typename Predicate $>$ \\
auto kblib\+::split\+\_\+dsv (\begin{DoxyParamCaption}\item[{const String \&}]{str,  }\item[{Predicate}]{delim }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_acdb4473ef9196a18a0e37e05171729f0}{return\+\_\+assert\+\_\+t}}$<$         \mbox{\hyperlink{structkblib_1_1is__callable}{is\+\_\+callable}}$<$Predicate,                     typename Container\+::value\+\_\+type\+::value\+\_\+type$>$\+::value,         Container$>$ }



Split a string on all instances of delim. 


\begin{DoxyParams}{Parameters}
{\em in} & The string to split \\
\hline
{\em delim} & A predicate for delimiters. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container A sequence container of all substrings in the split input. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00522}{522}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a288c8338128b43f633100be6f592e3ec}\label{namespacekblib_a288c8338128b43f633100be6f592e3ec}} 
\index{kblib@{kblib}!split\_tokens@{split\_tokens}}
\index{split\_tokens@{split\_tokens}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{split\_tokens()}{split\_tokens()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename Container  = std\+::vector$<$std\+::string$>$, typename String $>$ \\
auto kblib\+::split\+\_\+tokens (\begin{DoxyParamCaption}\item[{const String \&}]{in }\end{DoxyParamCaption}) -\/$>$ Container }



Split a string on all instances of whitespace. 


\begin{DoxyParams}{Parameters}
{\em in} & The string to split \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container A sequence container of all substrings in the split input. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00433}{433}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a05a551b96ff921bdd62cd2fc0110c54d}\label{namespacekblib_a05a551b96ff921bdd62cd2fc0110c54d}} 
\index{kblib@{kblib}!split\_tokens@{split\_tokens}}
\index{split\_tokens@{split\_tokens}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{split\_tokens()}{split\_tokens()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename Container  = std\+::vector$<$std\+::string$>$, typename Predicate , typename String $>$ \\
auto kblib\+::split\+\_\+tokens (\begin{DoxyParamCaption}\item[{const String \&}]{in,  }\item[{Predicate}]{spacer }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_acdb4473ef9196a18a0e37e05171729f0}{return\+\_\+assert\+\_\+t}}$<$         \mbox{\hyperlink{structkblib_1_1is__callable}{is\+\_\+callable}}$<$Predicate,                     typename Container\+::value\+\_\+type\+::value\+\_\+type$>$\+::value,         Container$>$ }



Split a string on all condensed delimiters. 


\begin{DoxyParams}{Parameters}
{\em in} & The string to split \\
\hline
{\em spacer} & A predicate which determines whether a character is a delimiter. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container A sequence container of all substrings in the split input. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00397}{397}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a34cba269622ee9886da3de3d723e1e3e}\label{namespacekblib_a34cba269622ee9886da3de3d723e1e3e}} 
\index{kblib@{kblib}!split\_tokens@{split\_tokens}}
\index{split\_tokens@{split\_tokens}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{split\_tokens()}{split\_tokens()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename Container  = std\+::vector$<$std\+::string$>$, typename String $>$ \\
auto kblib\+::split\+\_\+tokens (\begin{DoxyParamCaption}\item[{const String \&}]{in,  }\item[{typename Container\+::value\+\_\+type\+::value\+\_\+type}]{delim }\end{DoxyParamCaption}) -\/$>$ Container }



Split a string on all instances of a delimiter. 


\begin{DoxyParams}{Parameters}
{\em in} & The string to split \\
\hline
{\em delim} & The character to split on. A run of delimiters is condensed. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Container A sequence container of all substrings in the split input. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00445}{445}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a8cdb20ed932413236d054b256207b5e3}\label{namespacekblib_a8cdb20ed932413236d054b256207b5e3}} 
\index{kblib@{kblib}!starts\_with@{starts\_with}}
\index{starts\_with@{starts\_with}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{starts\_with()}{starts\_with()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily template$<$typename Input\+It1 , typename End\+It1 , typename Input\+It2 , typename End\+It2 , typename Binary\+Pred $>$ \\
constexpr auto kblib\+::starts\+\_\+with (\begin{DoxyParamCaption}\item[{Input\+It1}]{begin1,  }\item[{End\+It1}]{end1,  }\item[{Input\+It2}]{begin2,  }\item[{End\+It2}]{end2,  }\item[{Binary\+Pred}]{pred }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$         (\mbox{\hyperlink{namespacekblib_a38ad8c5b263ac766baf7ec36fe3b4a10}{is\+\_\+input\+\_\+iterator\+\_\+v}}$<$Input\+It1$>$ and \mbox{\hyperlink{namespacekblib_a38ad8c5b263ac766baf7ec36fe3b4a10}{is\+\_\+input\+\_\+iterator\+\_\+v}}$<$Input\+It2$>$)          and not (\mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v}}$<$                      Input\+It1$>$ and \mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v}}$<$Input\+It2$>$),         bool$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Checks if a given range starts with a particular subrange. 



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00738}{738}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_aece8787c934d63869d013a3f5e15cc56}\label{namespacekblib_aece8787c934d63869d013a3f5e15cc56}} 
\index{kblib@{kblib}!starts\_with@{starts\_with}}
\index{starts\_with@{starts\_with}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{starts\_with()}{starts\_with()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily template$<$typename Random\+Access\+It1 , typename Random\+Access\+It2 , typename Binary\+Pred  = std\+::equal\+\_\+to$<$$>$$>$ \\
constexpr auto kblib\+::starts\+\_\+with (\begin{DoxyParamCaption}\item[{Random\+Access\+It1}]{begin1,  }\item[{Random\+Access\+It1}]{end1,  }\item[{Random\+Access\+It2}]{begin2,  }\item[{Random\+Access\+It2}]{end2,  }\item[{Binary\+Pred}]{pred = {\ttfamily \{\}} }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$         \mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v}}$<$             Random\+Access\+It1$>$ and \mbox{\hyperlink{namespacekblib_a9f3169b47a686b2f29f36d4419530960}{is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v}}$<$Random\+Access\+It2$>$,         bool$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Checks if a given range starts with a particular subrange. 



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00759}{759}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a07cac288890ce291ba1fe97874feba41}\label{namespacekblib_a07cac288890ce291ba1fe97874feba41}} 
\index{kblib@{kblib}!starts\_with@{starts\_with}}
\index{starts\_with@{starts\_with}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{starts\_with()}{starts\_with()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily auto kblib\+::starts\+\_\+with (\begin{DoxyParamCaption}\item[{std\+::string\+\_\+view}]{haystack,  }\item[{char}]{needle }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [inline]}}



Checks if a given string starts with a particular string. 


\begin{DoxyParams}{Parameters}
{\em haystack} & The string to be checked. \\
\hline
{\em needle} & The prefix to check for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
bool If haystack starts with needle. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00688}{688}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a43d878711202236ccdd3100d878e27f5}\label{namespacekblib_a43d878711202236ccdd3100d878e27f5}} 
\index{kblib@{kblib}!starts\_with@{starts\_with}}
\index{starts\_with@{starts\_with}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{starts\_with()}{starts\_with()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily auto kblib\+::starts\+\_\+with (\begin{DoxyParamCaption}\item[{std\+::string\+\_\+view}]{haystack,  }\item[{std\+::string\+\_\+view}]{needle }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [inline]}}



Checks if a given string starts with a particular string. 


\begin{DoxyParams}{Parameters}
{\em haystack} & The string to be checked. \\
\hline
{\em needle} & The prefix to check for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
bool If haystack starts with needle. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00676}{676}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a29192473be72ea5a4451ad3c16c160a6}\label{namespacekblib_a29192473be72ea5a4451ad3c16c160a6}} 
\index{kblib@{kblib}!static\_coerce@{static\_coerce}}
\index{static\_coerce@{static\_coerce}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{static\_coerce()}{static\_coerce()}}
{\footnotesize\ttfamily template$<$typename To , typename... Ts$>$ \\
auto kblib\+::static\+\_\+coerce (\begin{DoxyParamCaption}\item[{const std\+::variant$<$ Ts... $>$ \&}]{v }\end{DoxyParamCaption}) -\/$>$ To }



static\+\_\+casts the value of v (no matter its type) to type To. 


\begin{DoxyParams}{Parameters}
{\em v} & A variant to coerce. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
To The type to coerce to. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{variant_8h_source_l00080}{80}} of file \mbox{\hyperlink{variant_8h_source}{variant.\+h}}.

\mbox{\Hypertarget{namespacekblib_a2fdc3a299b0c7c4d8432c253ad3bb1ca}\label{namespacekblib_a2fdc3a299b0c7c4d8432c253ad3bb1ca}} 
\index{kblib@{kblib}!strsize@{strsize}}
\index{strsize@{strsize}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{strsize()}{strsize()}}
{\footnotesize\ttfamily template$<$typename Str $>$ \\
auto kblib\+::strsize (\begin{DoxyParamCaption}\item[{Str \&\&}]{str }\end{DoxyParamCaption}) -\/$>$ std\+::size\+\_\+t }



Determines the size in characters of any valid argument to concat or append. 


\begin{DoxyParams}{Parameters}
{\em str} & A value of any stringlike or arithmetic type to count the characters of. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
std\+::size\+\_\+t The number of characters needed to represent str. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00217}{217}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab0380312efcdc59f34b028e698c265dc}\label{namespacekblib_ab0380312efcdc59f34b028e698c265dc}} 
\index{kblib@{kblib}!sum@{sum}}
\index{sum@{sum}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{sum()}{sum()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename Input\+It $>$ \\
constexpr auto kblib\+::sum (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Input\+It}]{last }\end{DoxyParamCaption}) -\/$>$ std\+::decay\+\_\+t$<$decltype($\ast$first)$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Sum a range. 

Convenience wrapper for std\+::accumulate. For an empty range, returns a value-\/initialized temporary (usually 0). Deduces the correct type for the initializer, which reduces risk of truncation and incorrect results.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em first} & Beginning of range \\
\hline
\mbox{\texttt{ in}}  & {\em last} & End of range \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The sum of the input range. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00194}{194}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae86453386b48c0a0ad1b43938e4f7022}\label{namespacekblib_ae86453386b48c0a0ad1b43938e4f7022}} 
\index{kblib@{kblib}!sum@{sum}}
\index{sum@{sum}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{sum()}{sum()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename Binary\+Operation $>$ \\
constexpr auto kblib\+::sum (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{Input\+It}]{last,  }\item[{Binary\+Operation}]{op }\end{DoxyParamCaption}) -\/$>$ std\+::decay\+\_\+t$<$decltype($\ast$first)$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Fold a range over an operation. 

Convenience wrapper for std\+::accumulate. For an empty range, returns a value-\/initialized temporary (usually 0). Deduces the correct type for the initializer, which reduces risk of truncation and incorrect results.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em first} & Beginning of range \\
\hline
\mbox{\texttt{ in}}  & {\em last} & End of range \\
\hline
\mbox{\texttt{ in}}  & {\em op} & The fold operation \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The sum of the input range. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00216}{216}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac8b5f9fd83c3ec829e9ee86c2c7424f1}\label{namespacekblib_ac8b5f9fd83c3ec829e9ee86c2c7424f1}} 
\index{kblib@{kblib}!sum@{sum}}
\index{sum@{sum}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{sum()}{sum()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename Range $>$ \\
constexpr auto kblib\+::sum (\begin{DoxyParamCaption}\item[{Range \&\&}]{r }\end{DoxyParamCaption}) -\/$>$ auto \hspace{0.3cm}{\ttfamily [constexpr]}}



Sum a range. 

Convenience wrapper for std\+::accumulate. For an empty range, returns a value-\/initialized temporary (usually 0). Deduces the correct type for the initializer, which reduces risk of truncation and incorrect results.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em r} & The range to sum \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The sum of the input range. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l00237}{237}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_aa2267a7d93c70cf8e895349e67c33134}\label{namespacekblib_aa2267a7d93c70cf8e895349e67c33134}} 
\index{kblib@{kblib}!tau@{tau}}
\index{tau@{tau}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{tau()}{tau()}}
{\footnotesize\ttfamily template$<$typename T  = double$>$ \\
constexpr auto kblib\+::tau (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ T \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{stats_8h_source_l00464}{464}} of file \mbox{\hyperlink{stats_8h_source}{stats.\+h}}.

\mbox{\Hypertarget{namespacekblib_a5731c616c6080a1e7b8f2155e76373df}\label{namespacekblib_a5731c616c6080a1e7b8f2155e76373df}} 
\index{kblib@{kblib}!tee@{tee}}
\index{tee@{tee}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{tee()}{tee()}}
{\footnotesize\ttfamily template$<$typename StreamA , typename StreamB $>$ \\
auto kblib\+::tee (\begin{DoxyParamCaption}\item[{StreamA \&}]{a,  }\item[{StreamB \&}]{b }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{classkblib_1_1basic__teestream}{basic\+\_\+teestream}}$<$StreamA, StreamB$>$ }



Definition at line \mbox{\hyperlink{io_8h_source_l00525}{525}} of file \mbox{\hyperlink{io_8h_source}{io.\+h}}.

\mbox{\Hypertarget{namespacekblib_a20e83a66411498f8637634a99ceef8f7}\label{namespacekblib_a20e83a66411498f8637634a99ceef8f7}} 
\index{kblib@{kblib}!time\_to\_str@{time\_to\_str}}
\index{time\_to\_str@{time\_to\_str}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{time\_to\_str()}{time\_to\_str()}}
{\footnotesize\ttfamily template$<$int max\+Buf\+Len = 4096, typename clock , typename duration $>$ \\
auto kblib\+::time\+\_\+to\+\_\+str (\begin{DoxyParamCaption}\item[{std\+::chrono\+::time\+\_\+point$<$ clock, duration $>$ \&}]{tp,  }\item[{const std\+::string \&}]{fmt = {\ttfamily \char`\"{}\%F~\%T\char`\"{}} }\end{DoxyParamCaption}) -\/$>$ std\+::string }



Definition at line \mbox{\hyperlink{convert_8h_source_l00249}{249}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_aa2ab36dcd40fe0308a4df9359b90fb6f}\label{namespacekblib_aa2ab36dcd40fe0308a4df9359b90fb6f}} 
\index{kblib@{kblib}!tmpfile@{tmpfile}}
\index{tmpfile@{tmpfile}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{tmpfile()}{tmpfile()}}
{\footnotesize\ttfamily template$<$typename File  = std\+::fstream$>$ \\
auto kblib\+::tmpfile (\begin{DoxyParamCaption}\item[{const std\+::filesystem\+::path \&}]{path,  }\item[{std\+::ios\+\_\+base\+::openmode}]{mode = {\ttfamily std\+:\+:ios\+\_\+base\+:\+:in~$\vert$~std\+:\+:ios\+\_\+base\+:\+:out} }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{io_8h_source_l00563}{563}} of file \mbox{\hyperlink{io_8h_source}{io.\+h}}.

\mbox{\Hypertarget{namespacekblib_a5ab8aca1c780d41f099cead14d4227c3}\label{namespacekblib_a5ab8aca1c780d41f099cead14d4227c3}} 
\index{kblib@{kblib}!to\_bytes@{to\_bytes}}
\index{to\_bytes@{to\_bytes}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{to\_bytes()}{to\_bytes()}}
{\footnotesize\ttfamily template$<$typename Integral , typename CharT $>$ \\
constexpr auto kblib\+::to\+\_\+bytes (\begin{DoxyParamCaption}\item[{Integral}]{val,  }\item[{CharT(\&)}]{dest\mbox{[}sizeof(\+Integral)\mbox{]} }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{hash_8h_source_l00080}{80}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_abc19a82cefecfafd20114ebb93b218ec}\label{namespacekblib_abc19a82cefecfafd20114ebb93b218ec}} 
\index{kblib@{kblib}!to\_bytes\_be@{to\_bytes\_be}}
\index{to\_bytes\_be@{to\_bytes\_be}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{to\_bytes\_be()}{to\_bytes\_be()}}
{\footnotesize\ttfamily template$<$typename Integral , typename CharT $>$ \\
constexpr auto kblib\+::to\+\_\+bytes\+\_\+be (\begin{DoxyParamCaption}\item[{Integral}]{ival,  }\item[{CharT(\&)}]{dest\mbox{[}sizeof(\+Integral)\mbox{]} }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{hash_8h_source_l00068}{68}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac450342ec31e16201b67e3331a23761d}\label{namespacekblib_ac450342ec31e16201b67e3331a23761d}} 
\index{kblib@{kblib}!to\_bytes\_le@{to\_bytes\_le}}
\index{to\_bytes\_le@{to\_bytes\_le}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{to\_bytes\_le()}{to\_bytes\_le()}}
{\footnotesize\ttfamily template$<$typename Integral , typename CharT $>$ \\
constexpr auto kblib\+::to\+\_\+bytes\+\_\+le (\begin{DoxyParamCaption}\item[{Integral}]{ival,  }\item[{CharT(\&)}]{dest\mbox{[}sizeof(\+Integral)\mbox{]} }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{hash_8h_source_l00056}{56}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_a1c2aa67048789f77bea56734a583d3d1}\label{namespacekblib_a1c2aa67048789f77bea56734a583d3d1}} 
\index{kblib@{kblib}!to\_pointer@{to\_pointer}}
\index{to\_pointer@{to\_pointer}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{to\_pointer()}{to\_pointer()}}
{\footnotesize\ttfamily template$<$typename P $>$ \\
constexpr auto kblib\+::to\+\_\+pointer (\begin{DoxyParamCaption}\item[{P \&\&}]{p }\end{DoxyParamCaption}) -\/$>$ auto$\ast$ \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Gets a raw pointer out of any smart pointer or iterator you might pass in, without dereferencing it or relying on a \mbox{\hyperlink{namespacekblib_a951945f1ed7d42562a7e6fa8cf8f0405}{get()}} method. 


\begin{DoxyParams}{Parameters}
{\em p} & A smart pointer to extract from. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{iterators_8h_source_l00072}{72}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_a1909a64960663825ccc4eb98e4637df2}\label{namespacekblib_a1909a64960663825ccc4eb98e4637df2}} 
\index{kblib@{kblib}!to\_signed@{to\_signed}}
\index{to\_signed@{to\_signed}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{to\_signed()}{to\_signed()}}
{\footnotesize\ttfamily template$<$typename I $>$ \\
constexpr auto kblib\+::to\+\_\+signed (\begin{DoxyParamCaption}\item[{I}]{x }\end{DoxyParamCaption}) -\/$>$ std\+::make\+\_\+signed\+\_\+t$<$I$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Cast integral argument to corresponding signed type. 



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00593}{593}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a9d7e23caee89855a71fb84c7f245f977}\label{namespacekblib_a9d7e23caee89855a71fb84c7f245f977}} 
\index{kblib@{kblib}!to\_string@{to\_string}}
\index{to\_string@{to\_string}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{to\_string()}{to\_string()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$int base, typename Int $>$ \\
auto kblib\+::to\+\_\+string (\begin{DoxyParamCaption}\item[{Int}]{num }\end{DoxyParamCaption}) -\/$>$ std\+::string }



Definition at line \mbox{\hyperlink{convert_8h_source_l00071}{71}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_ad4d84a46d50ba8ad780b5d12ec029225}\label{namespacekblib_ad4d84a46d50ba8ad780b5d12ec029225}} 
\index{kblib@{kblib}!to\_string@{to\_string}}
\index{to\_string@{to\_string}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{to\_string()}{to\_string()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Int $>$ \\
auto kblib\+::to\+\_\+string (\begin{DoxyParamCaption}\item[{Int}]{num,  }\item[{int}]{base }\end{DoxyParamCaption}) -\/$>$ std\+::string }



Definition at line \mbox{\hyperlink{convert_8h_source_l00094}{94}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_ae8b1b4dad48864760dd5c1ba368c06c9}\label{namespacekblib_ae8b1b4dad48864760dd5c1ba368c06c9}} 
\index{kblib@{kblib}!to\_unique@{to\_unique}}
\index{to\_unique@{to\_unique}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{to\_unique()}{to\_unique()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
auto kblib\+::to\+\_\+unique (\begin{DoxyParamCaption}\item[{gsl\+::owner$<$ T $\ast$ $>$}]{p }\end{DoxyParamCaption}) -\/$>$ std\+::unique\+\_\+ptr$<$T$>$ }



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00573}{573}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_acf70692a40d94aa8df04ea37d05c7a64}\label{namespacekblib_acf70692a40d94aa8df04ea37d05c7a64}} 
\index{kblib@{kblib}!to\_unique@{to\_unique}}
\index{to\_unique@{to\_unique}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{to\_unique()}{to\_unique()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T , typename D $>$ \\
auto kblib\+::to\+\_\+unique (\begin{DoxyParamCaption}\item[{gsl\+::owner$<$ T $\ast$ $>$}]{p,  }\item[{D \&\&}]{d }\end{DoxyParamCaption}) -\/$>$ std\+::unique\+\_\+ptr$<$T, D$>$ }



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00577}{577}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_af9e250fffa2922e623baa08aa8994f54}\label{namespacekblib_af9e250fffa2922e623baa08aa8994f54}} 
\index{kblib@{kblib}!to\_unsigned@{to\_unsigned}}
\index{to\_unsigned@{to\_unsigned}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{to\_unsigned()}{to\_unsigned()}}
{\footnotesize\ttfamily template$<$typename I $>$ \\
constexpr auto kblib\+::to\+\_\+unsigned (\begin{DoxyParamCaption}\item[{I}]{x }\end{DoxyParamCaption}) -\/$>$ std\+::make\+\_\+unsigned\+\_\+t$<$I$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Cast integral argument to corresponding unsigned type. 



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00586}{586}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a4bd8237188786dec83b4d7f5e6d05139}\label{namespacekblib_a4bd8237188786dec83b4d7f5e6d05139}} 
\index{kblib@{kblib}!tolower@{tolower}}
\index{tolower@{tolower}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{tolower()}{tolower()}}
{\footnotesize\ttfamily template$<$typename string $>$ \\
constexpr auto kblib\+::tolower (\begin{DoxyParamCaption}\item[{string}]{str }\end{DoxyParamCaption}) -\/$>$ string \hspace{0.3cm}{\ttfamily [constexpr]}}



Folds all characters in a string using the default execution character set to lowercase. 


\begin{DoxyParams}{Parameters}
{\em str} & The string to case-\/fold. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
string The case-\/folded string. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00591}{591}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a68e0483e61eda02342b8104c3832e60e}\label{namespacekblib_a68e0483e61eda02342b8104c3832e60e}} 
\index{kblib@{kblib}!toStr@{toStr}}
\index{toStr@{toStr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{toStr()}{toStr()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily auto kblib\+::to\+Str (\begin{DoxyParamCaption}\item[{std\+::string}]{val }\end{DoxyParamCaption}) -\/$>$ std\+::string \hspace{0.3cm}{\ttfamily [inline]}}



Definition at line \mbox{\hyperlink{convert_8h_source_l00750}{750}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_a600e9511e6339ab63326a78ece7df363}\label{namespacekblib_a600e9511e6339ab63326a78ece7df363}} 
\index{kblib@{kblib}!toStr@{toStr}}
\index{toStr@{toStr}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{toStr()}{toStr()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
auto kblib\+::to\+Str (\begin{DoxyParamCaption}\item[{T}]{val }\end{DoxyParamCaption}) -\/$>$ std\+::string }



Definition at line \mbox{\hyperlink{convert_8h_source_l00745}{745}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac1094a7e020c9186d0e3a608f9ff70f4}\label{namespacekblib_ac1094a7e020c9186d0e3a608f9ff70f4}} 
\index{kblib@{kblib}!toupper@{toupper}}
\index{toupper@{toupper}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{toupper()}{toupper()}}
{\footnotesize\ttfamily template$<$typename string $>$ \\
auto kblib\+::toupper (\begin{DoxyParamCaption}\item[{string}]{str }\end{DoxyParamCaption}) -\/$>$ string }



Folds all characters in a string using the default execution character set to uppercase. 


\begin{DoxyParams}{Parameters}
{\em str} & The string to case-\/fold. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
string The case-\/folded string. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00604}{604}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_a1308a2a6edc5a4ed26a7c5b5dea812d1}\label{namespacekblib_a1308a2a6edc5a4ed26a7c5b5dea812d1}} 
\index{kblib@{kblib}!toUTF32@{toUTF32}}
\index{toUTF32@{toUTF32}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{toUTF32()}{toUTF32()}}
{\footnotesize\ttfamily template$<$typename string  = std\+::u32string$>$ \\
auto kblib\+::to\+UTF32 (\begin{DoxyParamCaption}\item[{const icu\+::\+Unicode\+String \&}]{s }\end{DoxyParamCaption}) -\/$>$ string }



Converts a Unicode\+String to UTF-\/32. 


\begin{DoxyParams}{Parameters}
{\em s} & The string to convert. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
string The re-\/encoded result. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{icu_8h_source_l00078}{78}} of file \mbox{\hyperlink{icu_8h_source}{icu.\+h}}.

\mbox{\Hypertarget{namespacekblib_a27540546baa5adb2684d6b01b82d9594}\label{namespacekblib_a27540546baa5adb2684d6b01b82d9594}} 
\index{kblib@{kblib}!toUTF8@{toUTF8}}
\index{toUTF8@{toUTF8}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{toUTF8()}{toUTF8()}}
{\footnotesize\ttfamily template$<$typename string  = std\+::string$>$ \\
auto kblib\+::to\+UTF8 (\begin{DoxyParamCaption}\item[{const icu\+::\+Unicode\+String \&}]{s }\end{DoxyParamCaption}) -\/$>$ string }



Convert a Unicode\+String to a UTF-\/8 string. 

This functionality is present in ICU, however the interface is inelegant.


\begin{DoxyParams}{Parameters}
{\em s} & The string to convert. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
string The re-\/encoded result. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{icu_8h_source_l00052}{52}} of file \mbox{\hyperlink{icu_8h_source}{icu.\+h}}.

\mbox{\Hypertarget{namespacekblib_aec3f0154a30d5459c15d1984f137644c}\label{namespacekblib_aec3f0154a30d5459c15d1984f137644c}} 
\index{kblib@{kblib}!transform@{transform}}
\index{transform@{transform}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{transform()}{transform()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename End\+It , typename Input\+It2 , typename Output\+It , typename Binary\+Operation $>$ \\
constexpr auto kblib\+::transform (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{End\+It}]{last,  }\item[{Input\+It}]{first2,  }\item[{Output\+It}]{d\+\_\+first,  }\item[{Binary\+Operation}]{binary\+\_\+op }\end{DoxyParamCaption}) -\/$>$ Output\+It \hspace{0.3cm}{\ttfamily [constexpr]}}



transform applies the given function to a range and stores the result in another range, beginning at d\+\_\+first. The unary operation unary\+\_\+op is applied to the range defined by \mbox{[}first1, last1). It also allows for a sentinel end iterator. 

\begin{DoxyRemark}{Remarks}
The expression {\ttfamily $\ast$d\+\_\+first = kblib\+::invoke(binary\+\_\+op, $\ast$first, $\ast$first2)} must be valid and must not modify {\ttfamily $\ast$first} or {\ttfamily $\ast$first2}.
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the first input range \\
\hline
{\em last} & The end of the first input range \\
\hline
{\em first2} & The beginning of the second input range \\
\hline
{\em d\+\_\+first} & The beginning of the output range \\
\hline
{\em binary\+\_\+op} & The operation to apply \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Output\+It An iterator to past the last element written 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l01659}{1659}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}\label{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}} 
\index{kblib@{kblib}!transform@{transform}}
\index{transform@{transform}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{transform()}{transform()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename End\+It , typename Output\+It , typename Unary\+Operation $>$ \\
constexpr auto kblib\+::transform (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{End\+It}]{last,  }\item[{Output\+It}]{d\+\_\+first,  }\item[{Unary\+Operation}]{unary\+\_\+op }\end{DoxyParamCaption}) -\/$>$ Output\+It \hspace{0.3cm}{\ttfamily [constexpr]}}



transform applies the given function to a range and stores the result in another range, beginning at d\+\_\+first. The unary operation unary\+\_\+op is applied to the range defined by \mbox{[}first1, last1). It also allows for a sentinel end iterator. 

\begin{DoxyRemark}{Remarks}
The expression {\ttfamily $\ast$d\+\_\+first = kblib\+::invoke(unary\+\_\+op, $\ast$first)} must be valid and must not modify {\ttfamily $\ast$first}.
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the input range \\
\hline
{\em last} & The end of the input range \\
\hline
{\em d\+\_\+first} & The beginning of the output range \\
\hline
{\em unary\+\_\+op} & The operation to apply \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Output\+It An iterator to past the last element written 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l01632}{1632}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_aa51ef49b30290e4d7d6f7201e58560c1}\label{namespacekblib_aa51ef49b30290e4d7d6f7201e58560c1}} 
\index{kblib@{kblib}!transform\_exclusive\_scan@{transform\_exclusive\_scan}}
\index{transform\_exclusive\_scan@{transform\_exclusive\_scan}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{transform\_exclusive\_scan()}{transform\_exclusive\_scan()}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename End\+It , typename Output\+It , typename T , typename Binary\+Accumulation , typename Unary\+Transform $>$ \\
constexpr auto kblib\+::transform\+\_\+exclusive\+\_\+scan (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{End\+It}]{last,  }\item[{Output\+It}]{d\+\_\+first,  }\item[{T}]{init,  }\item[{Binary\+Accumulation}]{accum,  }\item[{Unary\+Transform}]{proj }\end{DoxyParamCaption}) -\/$>$ Output\+It \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{algorithm_8h_source_l00251}{251}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_a09ef1e721a1b15383c199c67339aaa10}\label{namespacekblib_a09ef1e721a1b15383c199c67339aaa10}} 
\index{kblib@{kblib}!transform\_if@{transform\_if}}
\index{transform\_if@{transform\_if}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{transform\_if()}{transform\_if()}}
{\footnotesize\ttfamily template$<$typename Input\+It , typename End\+It , typename Output\+It , typename Unary\+Predicate , typename Unary\+Operation $>$ \\
constexpr auto kblib\+::transform\+\_\+if (\begin{DoxyParamCaption}\item[{Input\+It}]{first,  }\item[{End\+It}]{last,  }\item[{Output\+It}]{d\+\_\+first,  }\item[{Unary\+Predicate}]{pred,  }\item[{Unary\+Operation}]{unary\+\_\+op }\end{DoxyParamCaption}) -\/$>$ Output\+It \hspace{0.3cm}{\ttfamily [constexpr]}}



transform applies the given function to a range and stores the result in another range, beginning at d\+\_\+first. The unary operation unary\+\_\+op is applied to the range defined by \mbox{[}first1, last1). It also allows for a sentinel end iterator. 

\begin{DoxyRemark}{Remarks}
The expression {\ttfamily kblib\+::invoke(pred, $\ast$first)} must be valid and must return a type convertible to {\ttfamily bool}, and must not modify {\ttfamily $\ast$first} 

The expression {\ttfamily $\ast$d\+\_\+first = kblib\+::invoke(unary\+\_\+op, $\ast$first)} must be valid and must not modify {\ttfamily $\ast$first}.
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em first} & The beginning of the input range \\
\hline
{\em last} & The end of the input range \\
\hline
{\em d\+\_\+first} & The beginning of the output range \\
\hline
{\em pred} & The predicate to apply \\
\hline
{\em unary\+\_\+op} & The operation to apply \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Output\+It An iterator to past the last element written 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{algorithm_8h_source_l01690}{1690}} of file \mbox{\hyperlink{algorithm_8h_source}{algorithm.\+h}}.

\mbox{\Hypertarget{namespacekblib_aa807d817e32edd6ed91e4f151dde9ae2}\label{namespacekblib_aa807d817e32edd6ed91e4f151dde9ae2}} 
\index{kblib@{kblib}!transform\_iterator@{transform\_iterator}}
\index{transform\_iterator@{transform\_iterator}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{transform\_iterator()}{transform\_iterator()}}
{\footnotesize\ttfamily template$<$typename It , typename operation $>$ \\
\mbox{\hyperlink{classkblib_1_1transform__iterator}{kblib\+::transform\+\_\+iterator}} (\begin{DoxyParamCaption}\item[{It}]{,  }\item[{operation}]{ }\end{DoxyParamCaption}) -\/$>$  \mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}}$<$ It, operation $>$}

\mbox{\Hypertarget{namespacekblib_a0f9b71b4a51492465cca27cdd0deeef6}\label{namespacekblib_a0f9b71b4a51492465cca27cdd0deeef6}} 
\index{kblib@{kblib}!transform\_range@{transform\_range}}
\index{transform\_range@{transform\_range}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{transform\_range()}{transform\_range()}}
{\footnotesize\ttfamily template$<$typename It , typename End\+It , typename operation $>$ \\
auto kblib\+::transform\+\_\+range (\begin{DoxyParamCaption}\item[{It}]{begin,  }\item[{End\+It}]{end,  }\item[{operation}]{op }\end{DoxyParamCaption}) -\/$>$ auto \hspace{0.3cm}{\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{iterators_8h_source_l01321}{1321}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_a05e897a858310bc166f65965eadf8f66}\label{namespacekblib_a05e897a858310bc166f65965eadf8f66}} 
\index{kblib@{kblib}!transformer@{transformer}}
\index{transformer@{transformer}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{transformer()}{transformer()}}
{\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\
auto kblib\+::transformer (\begin{DoxyParamCaption}\item[{base\+\_\+iterator}]{it,  }\item[{operation}]{op }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}}$<$base\+\_\+iterator, operation$>$ \hspace{0.3cm}{\ttfamily [noexcept]}}



Factory function to make transform\+\_\+iterators. 


\begin{DoxyParams}{Parameters}
{\em it} & An Input\+Iterator to a range to transform. \\
\hline
{\em op} & The transformation to apply. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
transform\+\_\+iterator$<$base\+\_\+iterator, operation$>$ 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{iterators_8h_source_l01314}{1314}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_a07019c995e0508ce266be47f94f3a882}\label{namespacekblib_a07019c995e0508ce266be47f94f3a882}} 
\index{kblib@{kblib}!trim\_array@{trim\_array}}
\index{trim\_array@{trim\_array}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{trim\_array()}{trim\_array()}}
{\footnotesize\ttfamily template$<$int trim, typename T , int N, typename Indices  = std\+::make\+\_\+integer\+\_\+sequence$<$int, N -\/ trim$>$$>$ \\
constexpr auto kblib\+::trim\+\_\+array (\begin{DoxyParamCaption}\item[{const T(\&)}]{arr\mbox{[}\+N\mbox{]} }\end{DoxyParamCaption}) -\/$>$ std\+::array$<$T, N -\/ trim$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Truncates the last trim elements from an array. 


\begin{DoxyParams}{Parameters}
{\em arr} & The array to trim. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
std\+::array\texorpdfstring{$<$}{<}T, N -\/ trim\texorpdfstring{$>$}{>} The trimmed array. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{traits_8h_source_l00121}{121}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac2b7bd4d50cea42484b9824a8140602f}\label{namespacekblib_ac2b7bd4d50cea42484b9824a8140602f}} 
\index{kblib@{kblib}!try\_get@{try\_get}}
\index{try\_get@{try\_get}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{try\_get()}{try\_get()}}
{\footnotesize\ttfamily template$<$typename Map , typename Key $>$ \\
constexpr auto kblib\+::try\+\_\+get (\begin{DoxyParamCaption}\item[{Map \&}]{map,  }\item[{Key \&\&}]{key }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_af973fdd9c2dddf6db3744ae83902fc72}{copy\+\_\+const\+\_\+t}}$<$Map, typename Map\+::mapped\+\_\+type$>$$\ast$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{containers_8h_source_l00067}{67}} of file \mbox{\hyperlink{containers_8h_source}{containers.\+h}}.

\mbox{\Hypertarget{namespacekblib_a28d32b32bd6bbd28e27a80c236d46cd2}\label{namespacekblib_a28d32b32bd6bbd28e27a80c236d46cd2}} 
\index{kblib@{kblib}!try\_get\_file\_contents@{try\_get\_file\_contents}}
\index{try\_get\_file\_contents@{try\_get\_file\_contents}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{try\_get\_file\_contents()}{try\_get\_file\_contents()}}
{\footnotesize\ttfamily template$<$typename D  = std\+::string, typename string $>$ \\
auto kblib\+::try\+\_\+get\+\_\+file\+\_\+contents (\begin{DoxyParamCaption}\item[{const string \&}]{filename }\end{DoxyParamCaption}) -\/$>$ D }



Read the entire contents of a file into a container, such as std\+::string or std\+::vector$<$char$>$. Note that it will be most efficient to read into contiguous containers, as opposed to non-\/contiguous containers. 


\begin{DoxyParams}{Parameters}
{\em filename} & The filename to open. \\
\hline
\end{DoxyParams}

\begin{DoxyTemplParams}{Template Parameters}
{\em D} & A contiguous sequence container, which will be created and filled with the contents of the file to be read. \\
\hline
\end{DoxyTemplParams}
\begin{DoxyReturn}{Returns}
std\+::optional$<$\+D$>$ The contents of the file, if reading was successful. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{io_8h_source_l00123}{123}} of file \mbox{\hyperlink{io_8h_source}{io.\+h}}.

\mbox{\Hypertarget{namespacekblib_a7035cf97e9bcba5add3b1462ac01a0ed}\label{namespacekblib_a7035cf97e9bcba5add3b1462ac01a0ed}} 
\index{kblib@{kblib}!try\_reserve@{try\_reserve}}
\index{try\_reserve@{try\_reserve}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{try\_reserve()}{try\_reserve()}}
{\footnotesize\ttfamily template$<$typename C , typename std\+::enable\+\_\+if$<$ \mbox{\hyperlink{namespacekblib_ad122336bc521ea4a22d7759b529fb561}{has\+\_\+reserve\+\_\+v}}$<$ C $>$, int $>$\+::type  = 0$>$ \\
auto kblib\+::try\+\_\+reserve (\begin{DoxyParamCaption}\item[{C \&}]{c,  }\item[{std\+::size\+\_\+t}]{s }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [noexcept]}}



Attempt to reserve capacity in a container. No-\/op if unsupported. 


\begin{DoxyParams}{Parameters}
{\em c} & The container to modify. \\
\hline
{\em s} & The requested capacity. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{traits_8h_source_l00239}{239}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_a667a06da2b3ec8f82f8a22aee03e46d7}\label{namespacekblib_a667a06da2b3ec8f82f8a22aee03e46d7}} 
\index{kblib@{kblib}!unformatted\_expect@{unformatted\_expect}}
\index{unformatted\_expect@{unformatted\_expect}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{unformatted\_expect()}{unformatted\_expect()}}
{\footnotesize\ttfamily template$<$typename CharT $>$ \\
auto kblib\+::unformatted\+\_\+expect (\begin{DoxyParamCaption}\item[{CharT}]{c }\end{DoxyParamCaption}) -\/$>$ auto }



Read a character from an input stream only if it equals c. Acts as an Unformatted\+Input\+Operation, that is, it will not ignore any leading whitespace. 



Definition at line \mbox{\hyperlink{io_8h_source_l00262}{262}} of file \mbox{\hyperlink{io_8h_source}{io.\+h}}.

\mbox{\Hypertarget{namespacekblib_a8c75f5ab3c250a21cb71377f34304575}\label{namespacekblib_a8c75f5ab3c250a21cb71377f34304575}} 
\index{kblib@{kblib}!url\_encode@{url\_encode}}
\index{url\_encode@{url\_encode}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{url\_encode()}{url\_encode()}}
{\footnotesize\ttfamily template$<$typename string $>$ \\
auto kblib\+::url\+\_\+encode (\begin{DoxyParamCaption}\item[{const string \&}]{value }\end{DoxyParamCaption}) -\/$>$ std\+::string }



Definition at line \mbox{\hyperlink{convert_8h_source_l00498}{498}} of file \mbox{\hyperlink{convert_8h_source}{convert.\+h}}.

\mbox{\Hypertarget{namespacekblib_a8f75832450fffa41112f9035e75c405a}\label{namespacekblib_a8f75832450fffa41112f9035e75c405a}} 
\index{kblib@{kblib}!variant\_cast@{variant\_cast}}
\index{variant\_cast@{variant\_cast}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{variant\_cast()}{variant\_cast()}}
{\footnotesize\ttfamily template$<$typename To , typename From $>$ \\
constexpr auto kblib\+::variant\+\_\+cast (\begin{DoxyParamCaption}\item[{From \&\&}]{v }\end{DoxyParamCaption}) -\/$>$ To \hspace{0.3cm}{\ttfamily [constexpr]}}



Promotes an input variant to a super-\/variant. That is, one which provides at least the same set of types. 


\begin{DoxyParams}{Parameters}
{\em v} & The variant to promote. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
To A super-\/variant with the same value as v. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{variant_8h_source_l00194}{194}} of file \mbox{\hyperlink{variant_8h_source}{variant.\+h}}.

\mbox{\Hypertarget{namespacekblib_af1f6dd52b7ce14276ab5509700c6acf1}\label{namespacekblib_af1f6dd52b7ce14276ab5509700c6acf1}} 
\index{kblib@{kblib}!visit@{visit}}
\index{visit@{visit}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{visit()}{visit()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename V , typename F , typename... Fs$>$ \\
constexpr auto kblib\+::visit (\begin{DoxyParamCaption}\item[{V \&\&}]{v,  }\item[{F \&\&}]{f,  }\item[{Fs \&\&...}]{fs }\end{DoxyParamCaption}) -\/$>$ decltype(auto) \hspace{0.3cm}{\ttfamily [constexpr]}}



Wraps std\+::visit to provide an interface taking one variant and any number of functors providing an overload set. 

Also moves the variant to the left side of the operation, improving readability.


\begin{DoxyParams}{Parameters}
{\em v} & The variant to visit over. \\
\hline
{\em fs} & Any number of functors, which taken together as an overload set can be unambiguously called with any type in V. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{variant_8h_source_l00221}{221}} of file \mbox{\hyperlink{variant_8h_source}{variant.\+h}}.

\mbox{\Hypertarget{namespacekblib_aac6dcc14f17288a30b9a439fbd9ed3c2}\label{namespacekblib_aac6dcc14f17288a30b9a439fbd9ed3c2}} 
\index{kblib@{kblib}!visit@{visit}}
\index{visit@{visit}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{visit()}{visit()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename V $>$ \\
constexpr auto kblib\+::visit (\begin{DoxyParamCaption}\item[{V \&}]{v }\end{DoxyParamCaption}) -\/$>$ auto \hspace{0.3cm}{\ttfamily [constexpr]}}



Two-\/step visiting interface. Takes a variant, and returns an object which can be called with any number of callable arguments, builds an overload set from them, and visits the variant. 

\begin{DoxyNote}{Note}
The returned callable object contains a reference to v, so care must be taken to avoid dangling. However, if v is long-\/lived, the returned object may be stored and used to visit the same variant multiple times.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em v} & A variant to visit. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
auto A callable object which takes callable arguments and visits the visitor. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{variant_8h_source_l00332}{332}} of file \mbox{\hyperlink{variant_8h_source}{variant.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac780c4d9780fb9b46be0669d377e1e9b}\label{namespacekblib_ac780c4d9780fb9b46be0669d377e1e9b}} 
\index{kblib@{kblib}!visit2@{visit2}}
\index{visit2@{visit2}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{visit2()}{visit2()}}
{\footnotesize\ttfamily template$<$typename V , typename F , typename... Fs$>$ \\
constexpr auto kblib\+::visit2 (\begin{DoxyParamCaption}\item[{V \&\&}]{v,  }\item[{F \&\&}]{f,  }\item[{Fs \&\&...}]{fs }\end{DoxyParamCaption}) -\/$>$ decltype(auto) \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{variant_8h_source_l00295}{295}} of file \mbox{\hyperlink{variant_8h_source}{variant.\+h}}.

\mbox{\Hypertarget{namespacekblib_a76752fc2ac3634b95ba226b1324dc0b9}\label{namespacekblib_a76752fc2ac3634b95ba226b1324dc0b9}} 
\index{kblib@{kblib}!visit2\_nop@{visit2\_nop}}
\index{visit2\_nop@{visit2\_nop}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{visit2\_nop()}{visit2\_nop()}}
{\footnotesize\ttfamily template$<$typename V , typename F , typename... Fs$>$ \\
constexpr auto kblib\+::visit2\+\_\+nop (\begin{DoxyParamCaption}\item[{V \&\&}]{v,  }\item[{F \&\&}]{f,  }\item[{Fs \&\&...}]{fs }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{variant_8h_source_l00306}{306}} of file \mbox{\hyperlink{variant_8h_source}{variant.\+h}}.

\mbox{\Hypertarget{namespacekblib_a7600c651ddd193dfeb5d294732ab1e69}\label{namespacekblib_a7600c651ddd193dfeb5d294732ab1e69}} 
\index{kblib@{kblib}!visit\_indexed@{visit\_indexed}}
\index{visit\_indexed@{visit\_indexed}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{visit\_indexed()}{visit\_indexed()}}
{\footnotesize\ttfamily template$<$typename Variant , typename... Fs$>$ \\
constexpr auto kblib\+::visit\+\_\+indexed (\begin{DoxyParamCaption}\item[{Variant \&\&}]{variant,  }\item[{Fs \&\&...}]{fs }\end{DoxyParamCaption}) -\/$>$ decltype(auto) \hspace{0.3cm}{\ttfamily [constexpr]}}



Visit a variant, but pass the index (as an integral\+\_\+constant) to the visitor. This allows for a visitor of a variant with duplicated types to maintain index information. 


\begin{DoxyParams}{Parameters}
{\em variant} & The variant to visit. \\
\hline
{\em fs} & Any number of functors, which taken together as an overload set can be unambiguously called with (I, A), for I = kblib\+::constant$<$std\+::size\+\_\+t, variant.\+index()$>$ and A = std\+::get$<$variant.\+index()$>$(variant). Note that \mbox{\hyperlink{structkblib_1_1constant}{kblib\+::constant}} implicitly converts to std\+::integral\+\_\+constant. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{variant_8h_source_l00176}{176}} of file \mbox{\hyperlink{variant_8h_source}{variant.\+h}}.

\mbox{\Hypertarget{namespacekblib_a8df9aed23f5d515ec52f68275e43014b}\label{namespacekblib_a8df9aed23f5d515ec52f68275e43014b}} 
\index{kblib@{kblib}!visitor@{visitor}}
\index{visitor@{visitor}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{visitor()}{visitor()}}
{\footnotesize\ttfamily template$<$typename... Ts$>$ \\
\mbox{\hyperlink{structkblib_1_1visitor}{kblib\+::visitor}} (\begin{DoxyParamCaption}\item[{Ts...}]{ }\end{DoxyParamCaption}) -\/$>$  \mbox{\hyperlink{structkblib_1_1visitor}{visitor}}$<$ Ts... $>$}

\mbox{\Hypertarget{namespacekblib_a0768784de97af5384c76b4009f22fb31}\label{namespacekblib_a0768784de97af5384c76b4009f22fb31}} 
\index{kblib@{kblib}!zip@{zip}}
\index{zip@{zip}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{zip()}{zip()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Input\+It1 , typename End\+It , typename Input\+It2 $>$ \\
auto kblib\+::zip (\begin{DoxyParamCaption}\item[{Input\+It1}]{begin1,  }\item[{End\+It}]{end1,  }\item[{Input\+It2}]{begin2 }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{structkblib_1_1zip__iterator}{zip\+\_\+iterator}}$<$Input\+It1, End\+It, Input\+It2$>$ \hspace{0.3cm}{\ttfamily [noexcept]}}



Iterate over two ranges in lockstep, like Python\textquotesingle{}s zip. 

Input\+It1 and End\+It may be different types, however that breaks range-\/for in C++14.


\begin{DoxyParams}{Parameters}
{\em begin1,end1} & The first range. \\
\hline
{\em begin2} & The beginning of the second range. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
zip\+\_\+iterator$<$\+Input\+It1, End\+It, Input\+It2$>$ A range (and also an iterator) which represents the two ranges taken in pairs. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{iterators_8h_source_l01454}{1454}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{namespacekblib_af06b17342da0e55aff646066ce8c283d}\label{namespacekblib_af06b17342da0e55aff646066ce8c283d}} 
\index{kblib@{kblib}!zip@{zip}}
\index{zip@{zip}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{zip()}{zip()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Range1 , typename Range2 $>$ \\
auto kblib\+::zip (\begin{DoxyParamCaption}\item[{Range1 \&\&}]{r1,  }\item[{Range2 \&\&}]{r2 }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{structkblib_1_1zip__iterator}{zip\+\_\+iterator}}$<$decltype(begin(r1)), decltype(end(r1)),                     decltype(begin(r2))$>$ \hspace{0.3cm}{\ttfamily [noexcept]}}



Iterate over two ranges in lockstep, like Python\textquotesingle{}s zip. 


\begin{DoxyParams}{Parameters}
{\em r1} & The first range. \\
\hline
{\em r2} & The second range. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{structkblib_1_1zip__iterator}{zip\+\_\+iterator}}\texorpdfstring{$<$}{<}decltype(begin(r1)), decltype(end(r1)), decltype(begin(r2))\texorpdfstring{$>$}{>} A range (and also an iterator) which represents the two ranges taken in pairs. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{iterators_8h_source_l01470}{1470}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.



\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{namespacekblib_aba974d3674b8fe6b1cf75e16a66322f0}\label{namespacekblib_aba974d3674b8fe6b1cf75e16a66322f0}} 
\index{kblib@{kblib}!any\_void@{any\_void}}
\index{any\_void@{any\_void}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{any\_void}{any\_void}}
{\footnotesize\ttfamily template$<$typename... Ts$>$ \\
constexpr bool kblib\+::any\+\_\+void = (std\+::is\+\_\+void\+\_\+v$<$Ts$>$ or ...)\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{simple_8h_source_l00072}{72}} of file \mbox{\hyperlink{simple_8h_source}{simple.\+h}}.

\mbox{\Hypertarget{namespacekblib_aa29cd1999efff7dd9b8d9aa8ab468109}\label{namespacekblib_aa29cd1999efff7dd9b8d9aa8ab468109}} 
\index{kblib@{kblib}!bits\_of@{bits\_of}}
\index{bits\_of@{bits\_of}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{bits\_of}{bits\_of}}
{\footnotesize\ttfamily template$<$typename Int $>$ \\
constexpr int kblib\+::bits\+\_\+of = std\+::numeric\+\_\+limits$<$Int$>$\+::digits\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{bits_8h_source_l00053}{53}} of file \mbox{\hyperlink{bits_8h_source}{bits.\+h}}.

\mbox{\Hypertarget{namespacekblib_aad99c3a2af651595f17e2c95c2c521d4}\label{namespacekblib_aad99c3a2af651595f17e2c95c2c521d4}} 
\index{kblib@{kblib}!build\_end@{build\_end}}
\index{build\_end@{build\_end}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{build\_end}{build\_end}}
{\footnotesize\ttfamily constexpr struct \mbox{\hyperlink{structkblib_1_1build__end__t}{kblib\+::build\+\_\+end\+\_\+t}} kblib\+::build\+\_\+end}

\mbox{\Hypertarget{namespacekblib_a8adff72b30cc79a9a17d79aecb1796b3}\label{namespacekblib_a8adff72b30cc79a9a17d79aecb1796b3}} 
\index{kblib@{kblib}!conjunction\_v@{conjunction\_v}}
\index{conjunction\_v@{conjunction\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{conjunction\_v}{conjunction\_v}}
{\footnotesize\ttfamily template$<$bool... args$>$ \\
constexpr bool kblib\+::conjunction\+\_\+v = (args and ...)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{logic_8h_source_l00061}{61}} of file \mbox{\hyperlink{logic_8h_source}{logic.\+h}}.

\mbox{\Hypertarget{namespacekblib_a462a4f145e951b0820c78d27c60d7389}\label{namespacekblib_a462a4f145e951b0820c78d27c60d7389}} 
\index{kblib@{kblib}!contains\_type\_v@{contains\_type\_v}}
\index{contains\_type\_v@{contains\_type\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{contains\_type\_v}{contains\_type\_v}}
{\footnotesize\ttfamily template$<$typename... Ts$>$ \\
\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} kblib\+::contains\+\_\+type\+\_\+v = \mbox{\hyperlink{structkblib_1_1contains__type}{contains\+\_\+type}}$<$Ts...$>$\+::value}



Definition at line \mbox{\hyperlink{traits_8h_source_l00065}{65}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_a7bf6ffaec25cb2430dcd6f43bd285ca4}\label{namespacekblib_a7bf6ffaec25cb2430dcd6f43bd285ca4}} 
\index{kblib@{kblib}!contains\_types\_v@{contains\_types\_v}}
\index{contains\_types\_v@{contains\_types\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{contains\_types\_v}{contains\_types\_v}}
{\footnotesize\ttfamily template$<$typename... Ts$>$ \\
\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} kblib\+::contains\+\_\+types\+\_\+v = \mbox{\hyperlink{structkblib_1_1contains__types}{contains\+\_\+types}}$<$Ts...$>$\+::value}



Definition at line \mbox{\hyperlink{traits_8h_source_l00084}{84}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_af23ee1a0fd16161a62159681c8cf6e16}\label{namespacekblib_af23ee1a0fd16161a62159681c8cf6e16}} 
\index{kblib@{kblib}!eof@{eof}}
\index{eof@{eof}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{eof}{eof}}
{\footnotesize\ttfamily template$<$typename CharT  = char$>$ \\
\mbox{\hyperlink{tdecl_8h_a35b356d58929dd3ae764e8291838f5be}{KBLIB\+\_\+\+CONSTANT}} auto kblib\+::eof = std\+::char\+\_\+traits$<$CharT$>$\+::eof()}



Names the EOF value for the given character type in std\+::char\+\_\+traits. 



Definition at line \mbox{\hyperlink{traits_8h_source_l00444}{444}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_ad122336bc521ea4a22d7759b529fb561}\label{namespacekblib_ad122336bc521ea4a22d7759b529fb561}} 
\index{kblib@{kblib}!has\_reserve\_v@{has\_reserve\_v}}
\index{has\_reserve\_v@{has\_reserve\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{has\_reserve\_v}{has\_reserve\_v}}
{\footnotesize\ttfamily template$<$typename C , typename  = void$>$ \\
\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} kblib\+::has\+\_\+reserve\+\_\+v = false}



Definition at line \mbox{\hyperlink{traits_8h_source_l00220}{220}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_adbb2b4e744a5f165142f9a49cf5fa8b4}\label{namespacekblib_adbb2b4e744a5f165142f9a49cf5fa8b4}} 
\index{kblib@{kblib}!hash\_detected\_v@{hash\_detected\_v}}
\index{hash\_detected\_v@{hash\_detected\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{hash\_detected\_v}{hash\_detected\_v}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr bool kblib\+::hash\+\_\+detected\+\_\+v = \mbox{\hyperlink{structkblib_1_1hash__detected}{hash\+\_\+detected}}$<$T$>$\+::value\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00921}{921}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_adfb43b754fe059940c0e827f48f97e41}\label{namespacekblib_adfb43b754fe059940c0e827f48f97e41}} 
\index{kblib@{kblib}!hash\_order@{hash\_order}}
\index{hash\_order@{hash\_order}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{hash\_order}{hash\_order}}
{\footnotesize\ttfamily constexpr \mbox{\hyperlink{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694}{endian}} kblib\+::hash\+\_\+order = \mbox{\hyperlink{namespacekblib_1_1detail_aa27cb7ef8337a7d338355c3a93e1431b}{detail\+::get\+\_\+hash\+\_\+order}}()\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{tdecl_8h_source_l00227}{227}} of file \mbox{\hyperlink{tdecl_8h_source}{tdecl.\+h}}.

\mbox{\Hypertarget{namespacekblib_a1bbf36db8dd7568fc671fe6972275dff}\label{namespacekblib_a1bbf36db8dd7568fc671fe6972275dff}} 
\index{kblib@{kblib}!implies\_v@{implies\_v}}
\index{implies\_v@{implies\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{implies\_v}{implies\_v}}
{\footnotesize\ttfamily template$<$bool A, bool B$>$ \\
constexpr bool kblib\+::implies\+\_\+v = \mbox{\hyperlink{structkblib_1_1implies}{implies}}$<$A, B$>$\+::value\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}

Equivalent to implies$<$\+A, B$>$\+::value. 

Definition at line \mbox{\hyperlink{logic_8h_source_l00058}{58}} of file \mbox{\hyperlink{logic_8h_source}{logic.\+h}}.

\mbox{\Hypertarget{namespacekblib_af44abb883b069d84630176b4b8cd26f6}\label{namespacekblib_af44abb883b069d84630176b4b8cd26f6}} 
\index{kblib@{kblib}!in\_place\_agg@{in\_place\_agg}}
\index{in\_place\_agg@{in\_place\_agg}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{in\_place\_agg}{in\_place\_agg}}
{\footnotesize\ttfamily constexpr struct \mbox{\hyperlink{structkblib_1_1in__place__agg__t}{kblib\+::in\+\_\+place\+\_\+agg\+\_\+t}} kblib\+::in\+\_\+place\+\_\+agg}

\mbox{\Hypertarget{namespacekblib_aa9f553215f3b18343f6b298506426ce2}\label{namespacekblib_aa9f553215f3b18343f6b298506426ce2}} 
\index{kblib@{kblib}!is\_aliasing\_type\_v@{is\_aliasing\_type\_v}}
\index{is\_aliasing\_type\_v@{is\_aliasing\_type\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{is\_aliasing\_type\_v}{is\_aliasing\_type\_v}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} kblib\+::is\+\_\+aliasing\+\_\+type\+\_\+v = \mbox{\hyperlink{structkblib_1_1is__aliasing__type}{is\+\_\+aliasing\+\_\+type}}$<$T$>$\+::value}



Definition at line \mbox{\hyperlink{traits_8h_source_l00471}{471}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab4a90d7f7bacba9a52aea362f42af35f}\label{namespacekblib_ab4a90d7f7bacba9a52aea362f42af35f}} 
\index{kblib@{kblib}!is\_bidirectional\_iterator\_v@{is\_bidirectional\_iterator\_v}}
\index{is\_bidirectional\_iterator\_v@{is\_bidirectional\_iterator\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{is\_bidirectional\_iterator\_v}{is\_bidirectional\_iterator\_v}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} kblib\+::is\+\_\+bidirectional\+\_\+iterator\+\_\+v = \mbox{\hyperlink{structkblib_1_1is__bidirectional__iterator}{is\+\_\+bidirectional\+\_\+iterator}}$<$T$>$\+::value}



Definition at line \mbox{\hyperlink{traits_8h_source_l00363}{363}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_ad80f4ade2acc180c9caf217300f2ffa5}\label{namespacekblib_ad80f4ade2acc180c9caf217300f2ffa5}} 
\index{kblib@{kblib}!is\_byte\_v@{is\_byte\_v}}
\index{is\_byte\_v@{is\_byte\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{is\_byte\_v}{is\_byte\_v}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr bool kblib\+::is\+\_\+byte\+\_\+v = false\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{sort_8h_source_l00248}{248}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}.

\mbox{\Hypertarget{namespacekblib_a7161c2976d0e6426ae3a6fdd0d40bc54}\label{namespacekblib_a7161c2976d0e6426ae3a6fdd0d40bc54}} 
\index{kblib@{kblib}!is\_character\_v@{is\_character\_v}}
\index{is\_character\_v@{is\_character\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{is\_character\_v}{is\_character\_v}}
{\footnotesize\ttfamily template$<$typename C $>$ \\
constexpr bool kblib\+::is\+\_\+character\+\_\+v = \mbox{\hyperlink{structkblib_1_1is__character}{is\+\_\+character}}$<$C$>$\+::value\hspace{0.3cm}{\ttfamily [constexpr]}}



Equivalent to is\+\_\+character$<$\+C$>$\+::value. 



Definition at line \mbox{\hyperlink{stringops_8h_source_l00076}{76}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespacekblib_acec974f6a75e6884147ef326bbd78d35}\label{namespacekblib_acec974f6a75e6884147ef326bbd78d35}} 
\index{kblib@{kblib}!is\_contiguous\_v@{is\_contiguous\_v}}
\index{is\_contiguous\_v@{is\_contiguous\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{is\_contiguous\_v}{is\_contiguous\_v}}
{\footnotesize\ttfamily template$<$typename C , typename  = void$>$ \\
\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} kblib\+::is\+\_\+contiguous\+\_\+v = false}



Type trait to determine if a container is contiguous. 



Definition at line \mbox{\hyperlink{traits_8h_source_l00261}{261}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_a8bde12b9b9ad4463f4cc065fd2df6f99}\label{namespacekblib_a8bde12b9b9ad4463f4cc065fd2df6f99}} 
\index{kblib@{kblib}!is\_forward\_iterator\_v@{is\_forward\_iterator\_v}}
\index{is\_forward\_iterator\_v@{is\_forward\_iterator\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{is\_forward\_iterator\_v}{is\_forward\_iterator\_v}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} kblib\+::is\+\_\+forward\+\_\+iterator\+\_\+v = \mbox{\hyperlink{structkblib_1_1is__forward__iterator}{is\+\_\+forward\+\_\+iterator}}$<$T$>$\+::value}



Definition at line \mbox{\hyperlink{traits_8h_source_l00350}{350}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_a088e976f0cd633372839a9f4404f3c15}\label{namespacekblib_a088e976f0cd633372839a9f4404f3c15}} 
\index{kblib@{kblib}!is\_hashable\_v@{is\_hashable\_v}}
\index{is\_hashable\_v@{is\_hashable\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{is\_hashable\_v}{is\_hashable\_v}}
{\footnotesize\ttfamily template$<$typename Key $>$ \\
\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} kblib\+::is\+\_\+hashable\+\_\+v = \mbox{\hyperlink{structkblib_1_1is__hashable}{is\+\_\+hashable}}$<$Key$>$\+::value}



Definition at line \mbox{\hyperlink{hash_8h_source_l00350}{350}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_a38ad8c5b263ac766baf7ec36fe3b4a10}\label{namespacekblib_a38ad8c5b263ac766baf7ec36fe3b4a10}} 
\index{kblib@{kblib}!is\_input\_iterator\_v@{is\_input\_iterator\_v}}
\index{is\_input\_iterator\_v@{is\_input\_iterator\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{is\_input\_iterator\_v}{is\_input\_iterator\_v}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} kblib\+::is\+\_\+input\+\_\+iterator\+\_\+v = \mbox{\hyperlink{structkblib_1_1is__input__iterator}{is\+\_\+input\+\_\+iterator}}$<$T$>$\+::value}



Definition at line \mbox{\hyperlink{traits_8h_source_l00337}{337}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_a47c378eaff6fdce8aa2eaafe18eb1356}\label{namespacekblib_a47c378eaff6fdce8aa2eaafe18eb1356}} 
\index{kblib@{kblib}!is\_iterable\_v@{is\_iterable\_v}}
\index{is\_iterable\_v@{is\_iterable\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{is\_iterable\_v}{is\_iterable\_v}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} kblib\+::is\+\_\+iterable\+\_\+v = \mbox{\hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}}$<$T$>$\+::value}



Definition at line \mbox{\hyperlink{traits_8h_source_l00413}{413}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_a77a4b828d16a122e5fd65379109dc036}\label{namespacekblib_a77a4b828d16a122e5fd65379109dc036}} 
\index{kblib@{kblib}!is\_iterator\_v@{is\_iterator\_v}}
\index{is\_iterator\_v@{is\_iterator\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{is\_iterator\_v}{is\_iterator\_v}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} kblib\+::is\+\_\+iterator\+\_\+v = \mbox{\hyperlink{structkblib_1_1is__iterator}{is\+\_\+iterator}}$<$T$>$\+::value}



Definition at line \mbox{\hyperlink{traits_8h_source_l00424}{424}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_ab58211612f119bcfedd22ca4ef9999de}\label{namespacekblib_ab58211612f119bcfedd22ca4ef9999de}} 
\index{kblib@{kblib}!is\_radix\_sortable\_v@{is\_radix\_sortable\_v}}
\index{is\_radix\_sortable\_v@{is\_radix\_sortable\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{is\_radix\_sortable\_v}{is\_radix\_sortable\_v}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr bool kblib\+::is\+\_\+radix\+\_\+sortable\+\_\+v = \mbox{\hyperlink{structkblib_1_1is__radix__sortable}{is\+\_\+radix\+\_\+sortable}}$<$T$>$\+::value\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{sort_8h_source_l00240}{240}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}.

\mbox{\Hypertarget{namespacekblib_a9f3169b47a686b2f29f36d4419530960}\label{namespacekblib_a9f3169b47a686b2f29f36d4419530960}} 
\index{kblib@{kblib}!is\_random\_access\_iterator\_v@{is\_random\_access\_iterator\_v}}
\index{is\_random\_access\_iterator\_v@{is\_random\_access\_iterator\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{is\_random\_access\_iterator\_v}{is\_random\_access\_iterator\_v}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} kblib\+::is\+\_\+random\+\_\+access\+\_\+iterator\+\_\+v = \mbox{\hyperlink{structkblib_1_1is__random__access__iterator}{is\+\_\+random\+\_\+access\+\_\+iterator}}$<$T$>$\+::value}



Definition at line \mbox{\hyperlink{traits_8h_source_l00377}{377}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_a625498ea158a89d47216df312843feac}\label{namespacekblib_a625498ea158a89d47216df312843feac}} 
\index{kblib@{kblib}!is\_reference\_v@{is\_reference\_v}}
\index{is\_reference\_v@{is\_reference\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{is\_reference\_v}{is\_reference\_v}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} kblib\+::is\+\_\+reference\+\_\+v = std\+::is\+\_\+reference$<$T$>$\+::value}



Abbreviated name for std\+::is\+\_\+reference$<$\+T$>$\+::value for C++14. 



Definition at line \mbox{\hyperlink{traits_8h_source_l00431}{431}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_a928b1f231946db62ee4c171a21593919}\label{namespacekblib_a928b1f231946db62ee4c171a21593919}} 
\index{kblib@{kblib}!is\_resizable\_v@{is\_resizable\_v}}
\index{is\_resizable\_v@{is\_resizable\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{is\_resizable\_v}{is\_resizable\_v}}
{\footnotesize\ttfamily template$<$typename C $>$ \\
\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} kblib\+::is\+\_\+resizable\+\_\+v = decltype(\mbox{\hyperlink{namespacekblib_1_1detail_ac5dbc22e701244360a7107a086f67d3c}{detail\+::calc\+\_\+resizable}}$<$C$>$(0))\+::value}

True if and only if C is a resizable container. 

Definition at line \mbox{\hyperlink{traits_8h_source_l00214}{214}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespacekblib_a16db4408c7a9d67eb38141aee1588ebd}\label{namespacekblib_a16db4408c7a9d67eb38141aee1588ebd}} 
\index{kblib@{kblib}!is\_trivially\_hashable\_v@{is\_trivially\_hashable\_v}}
\index{is\_trivially\_hashable\_v@{is\_trivially\_hashable\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{is\_trivially\_hashable\_v}{is\_trivially\_hashable\_v}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{tdecl_8h_a9b2376bf15765fad0ad95e4aecf36e87}{KBLIB\+\_\+\+CONSTANT\+\_\+V}} kblib\+::is\+\_\+trivially\+\_\+hashable\+\_\+v}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= (std::is\_integral<T>::value and padding\_bits<T>::value == 0)}
\DoxyCodeLine{      or std::is\_pointer<T>::value or std::is\_member\_object\_pointer<T>::value}
\DoxyCodeLine{      or std::is\_member\_function\_pointer<T>::value}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{hash_8h_source_l00432}{432}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_a6b22bbd4d3c7abe1c7ec7be007c11028}\label{namespacekblib_a6b22bbd4d3c7abe1c7ec7be007c11028}} 
\index{kblib@{kblib}!is\_variant\_like\_v@{is\_variant\_like\_v}}
\index{is\_variant\_like\_v@{is\_variant\_like\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{is\_variant\_like\_v}{is\_variant\_like\_v}}
{\footnotesize\ttfamily template$<$typename T , typename  = void$>$ \\
constexpr bool kblib\+::is\+\_\+variant\+\_\+like\+\_\+v = false\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{variant_8h_source_l00051}{51}} of file \mbox{\hyperlink{variant_8h_source}{variant.\+h}}.

\mbox{\Hypertarget{namespacekblib_aadf3de1384a8cce5b631b28711b4a47c}\label{namespacekblib_aadf3de1384a8cce5b631b28711b4a47c}} 
\index{kblib@{kblib}!key\_detected\_v@{key\_detected\_v}}
\index{key\_detected\_v@{key\_detected\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{key\_detected\_v}{key\_detected\_v}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr bool kblib\+::key\+\_\+detected\+\_\+v = \mbox{\hyperlink{structkblib_1_1key__detected}{key\+\_\+detected}}$<$T$>$\+::value\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00895}{895}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a13ab67cd7841362d9e8da411066ca974}\label{namespacekblib_a13ab67cd7841362d9e8da411066ca974}} 
\index{kblib@{kblib}!mapped\_detected\_v@{mapped\_detected\_v}}
\index{mapped\_detected\_v@{mapped\_detected\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{mapped\_detected\_v}{mapped\_detected\_v}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr bool kblib\+::mapped\+\_\+detected\+\_\+v = \mbox{\hyperlink{structkblib_1_1mapped__detected}{mapped\+\_\+detected}}$<$T$>$\+::value\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00908}{908}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespacekblib_a87295f2bf3c1f64ed3b04f4664fa2a78}\label{namespacekblib_a87295f2bf3c1f64ed3b04f4664fa2a78}} 
\index{kblib@{kblib}!padding\_bits\_v@{padding\_bits\_v}}
\index{padding\_bits\_v@{padding\_bits\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{padding\_bits\_v}{padding\_bits\_v}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr int kblib\+::padding\+\_\+bits\+\_\+v\hspace{0.3cm}{\ttfamily [constexpr]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= CHAR\_BIT * \textcolor{keyword}{sizeof}(T) -\/ std::numeric\_limits<T>::digits}
\DoxyCodeLine{      -\/ std::numeric\_limits<T>::is\_signed}

\end{DoxyCode}


Get the number of padding bits in an integral type. 



Definition at line \mbox{\hyperlink{hash_8h_source_l00300}{300}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_a8265ea9f77ece8f281a9d44f9df2b295}\label{namespacekblib_a8265ea9f77ece8f281a9d44f9df2b295}} 
\index{kblib@{kblib}!padding\_bits\_v$<$ void $>$@{padding\_bits\_v$<$ void $>$}}
\index{padding\_bits\_v$<$ void $>$@{padding\_bits\_v$<$ void $>$}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{padding\_bits\_v$<$ void $>$}{padding\_bits\_v< void >}}
{\footnotesize\ttfamily template$<$$>$ \\
constexpr int \mbox{\hyperlink{namespacekblib_a87295f2bf3c1f64ed3b04f4664fa2a78}{kblib\+::padding\+\_\+bits\+\_\+v}}$<$ void $>$ = 0\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{hash_8h_source_l00305}{305}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespacekblib_acfb1b995fef3970d7ece0836d0b8b232}\label{namespacekblib_acfb1b995fef3970d7ece0836d0b8b232}} 
\index{kblib@{kblib}!seed\_discard\_v@{seed\_discard\_v}}
\index{seed\_discard\_v@{seed\_discard\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{seed\_discard\_v}{seed\_discard\_v}}
{\footnotesize\ttfamily template$<$typename T , typename  = void$>$ \\
constexpr std\+::size\+\_\+t kblib\+::seed\+\_\+discard\+\_\+v = 0\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{random_8h_source_l00196}{196}} of file \mbox{\hyperlink{random_8h_source}{random.\+h}}.

\mbox{\Hypertarget{namespacekblib_ac35f43d37c7552bbbbe7ff67cff88bc8}\label{namespacekblib_ac35f43d37c7552bbbbe7ff67cff88bc8}} 
\index{kblib@{kblib}!state\_size\_v@{state\_size\_v}}
\index{state\_size\_v@{state\_size\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{state\_size\_v}{state\_size\_v}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr std\+::size\+\_\+t kblib\+::state\+\_\+size\+\_\+v = \mbox{\hyperlink{structkblib_1_1state__size}{state\+\_\+size}}$<$T$>$\+::value\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{random_8h_source_l00189}{189}} of file \mbox{\hyperlink{random_8h_source}{random.\+h}}.

\mbox{\Hypertarget{namespacekblib_a4aadfdece3872e99551aa812ac3bac27}\label{namespacekblib_a4aadfdece3872e99551aa812ac3bac27}} 
\index{kblib@{kblib}!swap@{swap}}
\index{swap@{swap}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{}{}}
{\footnotesize\ttfamily struct  \{ ... \}  kblib\+::swap}

\mbox{\Hypertarget{namespacekblib_a3dae0627cf4328fdec529095574560c4}\label{namespacekblib_a3dae0627cf4328fdec529095574560c4}} 
\index{kblib@{kblib}!system\_endian@{system\_endian}}
\index{system\_endian@{system\_endian}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{system\_endian}{system\_endian}}
{\footnotesize\ttfamily constexpr \mbox{\hyperlink{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694}{endian}} kblib\+::system\+\_\+endian = \mbox{\hyperlink{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694aad921d60486366258809553a3db49a4a}{endian\+::unknown}}\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{tdecl_8h_source_l00211}{211}} of file \mbox{\hyperlink{tdecl_8h_source}{tdecl.\+h}}.

\mbox{\Hypertarget{namespacekblib_a927171c113d5559da2f0f2245ed5e9da}\label{namespacekblib_a927171c113d5559da2f0f2245ed5e9da}} 
\index{kblib@{kblib}!value\_detected\_v@{value\_detected\_v}}
\index{value\_detected\_v@{value\_detected\_v}!kblib@{kblib}}
\doxysubsubsection{\texorpdfstring{value\_detected\_v}{value\_detected\_v}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr bool kblib\+::value\+\_\+detected\+\_\+v = \mbox{\hyperlink{structkblib_1_1value__detected}{value\+\_\+detected}}$<$T$>$\+::value\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00882}{882}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

