\hypertarget{namespace_k_b_l_i_b___n_s_1_1detail}{}\doxysection{KBLIB\+\_\+\+NS\+::detail Namespace Reference}
\label{namespace_k_b_l_i_b___n_s_1_1detail}\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1apply__impl}{apply\+\_\+impl}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1arithmetic__type}{arithmetic\+\_\+type}}
\begin{DoxyCompactList}\small\item\em Filter only arithmetic types. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1arithmetic__type_3_01_t_00_01true_01_4}{arithmetic\+\_\+type$<$ T, true $>$}}
\begin{DoxyCompactList}\small\item\em Filter only arithmetic types. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1buildiota__impl}{buildiota\+\_\+impl}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1buildiota__impl_3_01_array_00_01false_01_4}{buildiota\+\_\+impl$<$ Array, false $>$}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1buildiota__impl_3_01construct__with__size_3_01_container_00_01_n_01_4_00_01false_01_4}{buildiota\+\_\+impl$<$ construct\+\_\+with\+\_\+size$<$ Container, N $>$, false $>$}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1buildiota__impl_3_01_container_00_01true_01_4}{buildiota\+\_\+impl$<$ Container, true $>$}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1filter__signed}{filter\+\_\+signed}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1filter__signed_3_01_n_00_01true_01_4}{filter\+\_\+signed$<$ N, true $>$}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1filter__unsigned}{filter\+\_\+unsigned}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1filter__unsigned_3_01_n_00_01true_01_4}{filter\+\_\+unsigned$<$ N, true $>$}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1next__larger__signed}{next\+\_\+larger\+\_\+signed}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1no__dangle}{no\+\_\+dangle}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1no__dangle_3_01_t_01_6_6_01_4}{no\+\_\+dangle$<$ T \&\& $>$}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1node}{node}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1pointer}{pointer}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1pointer_3_01_d_00_01_t_00_01void__t_3_01typename_01_d_1_1pointer_01_4_01_4}{pointer$<$ D, T, void\+\_\+t$<$ typename D\+::pointer $>$ $>$}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type}{str\+\_\+type}}
\begin{DoxyCompactList}\small\item\em Converts arithmetic types to strings, but provides the identity transformation for all other types. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type_3_01char_00_01char_01_4}{str\+\_\+type$<$ char, char $>$}}
\begin{DoxyCompactList}\small\item\em Override for char to avoid conversion to integer. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type_3_01char16__t_00_01char16__t_01_4}{str\+\_\+type$<$ char16\+\_\+t, char16\+\_\+t $>$}}
\begin{DoxyCompactList}\small\item\em Override for char16\+\_\+t to avoid conversion to integer. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type_3_01char32__t_00_01char32__t_01_4}{str\+\_\+type$<$ char32\+\_\+t, char32\+\_\+t $>$}}
\begin{DoxyCompactList}\small\item\em Override for char32\+\_\+t to avoid conversion to integer. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type_3_01_t_00_01void_01_4}{str\+\_\+type$<$ T, void $>$}}
\begin{DoxyCompactList}\small\item\em Performs a natural conversion to a stringlike type. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type_3_01wchar__t_00_01wchar__t_01_4}{str\+\_\+type$<$ wchar\+\_\+t, wchar\+\_\+t $>$}}
\begin{DoxyCompactList}\small\item\em Override for wchar\+\_\+t to avoid conversion to integer. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1tag}{tag}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1tuple__type}{tuple\+\_\+type}}
\begin{DoxyCompactList}\small\item\em Given a std\+::variant T, provides the member type which is a tuple of the same types. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1tuple__type_3_01std_1_1variant_3_01_ts_8_8_8_01_4_01_4}{tuple\+\_\+type$<$ std\+::variant$<$ Ts... $>$ $>$}}
\begin{DoxyCompactList}\small\item\em Given a std\+::variant T, provides the member type which is a tuple of the same types. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1type__list}{type\+\_\+list}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1type__map}{type\+\_\+map}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1type__map__el}{type\+\_\+map\+\_\+el}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1value}{value}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1values}{values}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1values_3_01std_1_1index__sequence_3_01_idxs_8_8_8_01_4_00_01_ts_8_8_8_01_4}{values$<$ std\+::index\+\_\+sequence$<$ Idxs... $>$, Ts... $>$}}
\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename N $>$ }\\using \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a4ca2feb776435cad295138e923c880cd}{make\+\_\+smap\+\_\+el}} = \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1type__map__el}{type\+\_\+map\+\_\+el}}$<$ static\+\_\+cast$<$ std\+::intmax\+\_\+t $>$(\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_afab9877cb8e222417c9060316b2dfd1b}{msb\+\_\+possible}}$<$ N $>$()), N $>$
\item 
{\footnotesize template$<$typename N $>$ }\\using \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a70576f3cc2b61a4b25927f8add781bd8}{filter\+\_\+signed\+\_\+t}} = typename \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1filter__signed}{filter\+\_\+signed}}$<$ N $>$\+::type
\item 
{\footnotesize template$<$typename N $>$ }\\using \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a7e64e367f9d88635b2aad2974a90d050}{filter\+\_\+unsigned\+\_\+t}} = typename \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1filter__unsigned}{filter\+\_\+unsigned}}$<$ N $>$\+::type
\item 
{\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_ab5984368d8901725559a70fb4cf26ef3}{arithmetic\+\_\+type\+\_\+t}} = typename \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1arithmetic__type}{arithmetic\+\_\+type}}$<$ T $>$\+::type
\begin{DoxyCompactList}\small\item\em Equivalent to typename \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1arithmetic__type_af8a59139699e4fb6bfb5bb5bcc9538c4}{arithmetic\+\_\+type$<$\+T$>$\+::type}}. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a1d0a05faa78003be0ead46c3c4e37e7d}{str\+\_\+type\+\_\+t}} = typename \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type}{str\+\_\+type}}$<$ T $>$\+::type
\begin{DoxyCompactList}\small\item\em Provides the natural stringlike type for representing a T. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a93dda48d784c343281f70bd24e3f6771}{no\+\_\+dangle\+\_\+t}} = typename \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1no__dangle}{no\+\_\+dangle}}$<$ T $>$\+::type
\item 
{\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_afb592cea624c91f864cccec8c3b2708b}{tuple\+\_\+type\+\_\+t}} = typename \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1tuple__type}{tuple\+\_\+type}}$<$ T $>$\+::type
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename F , typename... Args, \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+member\+\_\+pointer$<$ \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a98c871b73b590b089f642ee077b87f1e}{remove\+\_\+cvref\+\_\+t}}$<$ F $>$ $>$\+::value, int $>$  = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_ac992e4a88d3dffba45f75f3912cb44d4}{do\+\_\+invoke}} (F \&\&f, Args \&\&... args) noexcept(noexcept(std\+::forward$<$ F $>$(f)(std\+::forward$<$ Args $>$(args)...))) -\/$>$ decltype(auto)
\item 
{\footnotesize template$<$typename F , typename Object , typename... Args, \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+pointer$<$ \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a98c871b73b590b089f642ee077b87f1e}{remove\+\_\+cvref\+\_\+t}}$<$ Object $>$ $>$\+::value and std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ F $>$\+::value, int $>$  = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_af9ee8c1f1f1160c865cc3f9d1ceef893}{do\+\_\+invoke}} (F f, Object \&\&obj, Args \&\&... args) noexcept(noexcept((std\+::forward$<$ Object $>$(obj).$\ast$f)(std\+::forward$<$ Args $>$(args)...))) -\/$>$ decltype(auto)
\item 
{\footnotesize template$<$typename F , typename Pointer , typename... Args, \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+pointer$<$ Pointer $>$\+::value and std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ F $>$\+::value, int $>$  = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a04edb301b3d6aa535418f8fba8797bc0}{do\+\_\+invoke}} (F f, Pointer ptr, Args \&\&... args) noexcept(noexcept((ptr-\/$>$ $\ast$f)(std\+::forward$<$ Args $>$(args)...))) -\/$>$ decltype(auto)
\item 
{\footnotesize template$<$typename Member , typename Object , \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+pointer$<$ \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a98c871b73b590b089f642ee077b87f1e}{remove\+\_\+cvref\+\_\+t}}$<$ Object $>$ $>$\+::value and std\+::is\+\_\+member\+\_\+object\+\_\+pointer$<$ Member $>$\+::value, int $>$  = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a5632ed7ff5a761ce1f2e085968b3af46}{do\+\_\+invoke}} (Member mem, Object \&\&obj) noexcept -\/$>$ decltype(auto)
\item 
{\footnotesize template$<$typename Member , typename Pointer , \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+pointer$<$ Pointer $>$\+::value and std\+::is\+\_\+member\+\_\+object\+\_\+pointer$<$ Member $>$\+::value, int $>$  = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_ad1f7dd80ce8544abd71e83910f2eaaa7}{do\+\_\+invoke}} (Member mem, Pointer ptr) noexcept -\/$>$ decltype(auto)
\item 
{\footnotesize template$<$typename... Ts$>$ }\\constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_ac19de1edcaaf73c6b34c1b43b262f0d1}{ignore}} (Ts \&\&...) noexcept -\/$>$ void
\item 
{\footnotesize template$<$typename T , std\+::size\+\_\+t... Is$>$ }\\constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a2e0ac1e3951bb892dc6c1444bf4d45b7}{swap\+\_\+tuple\+\_\+impl}} (T \&\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a228a6004801f23e3746cd67df6bcbeb6}{a}}, T \&b, std\+::index\+\_\+sequence$<$ Is... $>$) noexcept(noexcept(\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1ignore}{ignore}}(((void) \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a4ca198c8b213042d9bd7437a34e18476}{swap}}(std\+::get$<$ Is $>$(\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a228a6004801f23e3746cd67df6bcbeb6}{a}}), std\+::get$<$ Is $>$(b)), 0)...))) -\/$>$ void
\item 
constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a55519861f36b26fd4a40e996bd8d89f0}{msb}} (std\+::uintmax\+\_\+t x) -\/$>$ std\+::uintmax\+\_\+t
\item 
{\footnotesize template$<$typename Num $>$ }\\constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_afab9877cb8e222417c9060316b2dfd1b}{msb\+\_\+possible}} () -\/$>$ Num
\item 
{\footnotesize template$<$typename string , typename... S, std\+::size\+\_\+t... I$>$ }\\auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a7cd69120adb211f93ff7c0fe90ca8b54}{concat\+\_\+impl}} (std\+::index\+\_\+sequence$<$ I... $>$, S \&\&... ins) -\/$>$ string
\item 
{\footnotesize template$<$typename CharT $>$ }\\auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a40c8a2e25abcdb8d82f1a70755591284}{to\+\_\+int\+\_\+type}} (CharT ch)
\item 
{\footnotesize template$<$typename CharT , typename IntT $>$ }\\auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a53fda8b377c51c64a5c610ff935391d3}{to\+\_\+char\+\_\+type}} (IntT ch)
\item 
auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a4caa5ee7344d51c6ef2024316fe7bc9f}{tolower}} (char ch)
\item 
auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_aff4cab12e5283734ce6fd3adb1ecae5b}{towlower}} (wchar\+\_\+t ch)
\item 
auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a40ab156c25eebc279846777570e1ee1f}{toupper}} (char ch)
\item 
auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_ae36bc8ea869fc297b120e114c7f375c2}{towupper}} (wchar\+\_\+t ch)
\item 
constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a62231f99aa3fe4d8f764afe5f78d6c06}{get\+\_\+hash\+\_\+order}} () -\/$>$ \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_af2d769d113da59f30bf2c3eafdb3f1b1}{endian}}
\item 
{\footnotesize template$<$typename T , int N, int... I$>$ }\\constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_aaaa6726d508858c00cdcc6a32342d7c0}{trim\+\_\+array}} (const T(\&arr)\mbox{[}N\mbox{]}, std\+::integer\+\_\+sequence$<$ int, I... $>$) -\/$>$ std\+::array$<$ T, std\+::integer\+\_\+sequence$<$ int, I... $>$\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a4c92ee94a7a250948d44a29b0e7b3e78}{\+::size}}()$>$
\begin{DoxyCompactList}\small\item\em Truncates an array to its first N elements. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename C , typename  = decltype(std\+::declval$<$\+C\&$>$().\+resize(0))$>$ }\\auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a917b16b05f6a6e67dd5bde48eefa05a1}{calc\+\_\+resizable}} (int) noexcept -\/$>$ std\+::true\+\_\+type
\item 
{\footnotesize template$<$typename $>$ }\\auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a3353ad1db2ece08d867eb4920ec09137}{calc\+\_\+resizable}} (...) noexcept -\/$>$ std\+::false\+\_\+type
\item 
{\footnotesize template$<$typename Variant , typename F , std\+::size\+\_\+t... Is$>$ }\\constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a5e66be3e3295ba8fd10cae1f02637a98}{indexed\+\_\+visitor\+\_\+impl}} (std\+::index\+\_\+sequence$<$ Is... $>$) -\/$>$ auto
\begin{DoxyCompactList}\small\item\em Generates an array of function pointers which will unwrap the variant and pass the index to the function. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename V , typename F , std\+::size\+\_\+t I, std\+::size\+\_\+t... Is$>$ }\\constexpr decltype(auto) \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a4348c959ea3b2e34e77f5025f50304af}{visit\+\_\+impl}} (V \&\&v, F \&\&f, std\+::index\+\_\+sequence$<$ I, Is... $>$)
\item 
{\footnotesize template$<$typename V , typename F , std\+::size\+\_\+t I, std\+::size\+\_\+t... Is$>$ }\\constexpr void \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a491e959f533411b0a4e8c6d18631ae6d}{visit\+\_\+nop\+\_\+impl}} (V \&\&v, F \&\&f, std\+::index\+\_\+sequence$<$ I, Is... $>$)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr std\+::intmax\+\_\+t \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_ac6d52be296a693f6d344c35f27be1bee}{max\+\_\+val}} = std\+::numeric\+\_\+limits$<$T$>$\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1nums_a8f5e5a9f72912486d090c7f2727d2ca0}{\+::max}}()
\item 
{\footnotesize template$<$typename F , typename... Ts$>$ }\\constexpr bool \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a71c4fabb411878765b400dc95fee5882}{invocable\+\_\+with\+\_\+all\+\_\+v}} = (\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a12b5ffbb1ba36b917437285c8df9c4fc}{ignore\+\_\+t}}$<$std\+::invoke\+\_\+result\+\_\+t$<$F, Ts$>$, std\+::true\+\_\+type$>$\+::value and ...)
\item 
{\footnotesize template$<$typename Callable , typename Variant $>$ }\\constexpr bool \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_adfe379875f920e6a2cd1e8a30aac5f53}{v\+\_\+invocable\+\_\+with\+\_\+all\+\_\+v}} = false
\end{DoxyCompactItemize}


\doxysubsection{Typedef Documentation}
\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_ab5984368d8901725559a70fb4cf26ef3}\label{namespace_k_b_l_i_b___n_s_1_1detail_ab5984368d8901725559a70fb4cf26ef3}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!arithmetic\_type\_t@{arithmetic\_type\_t}}
\index{arithmetic\_type\_t@{arithmetic\_type\_t}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{arithmetic\_type\_t}{arithmetic\_type\_t}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
using \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_ab5984368d8901725559a70fb4cf26ef3}{KBLIB\+\_\+\+NS\+::detail\+::arithmetic\+\_\+type\+\_\+t}} = typedef typename \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1arithmetic__type}{arithmetic\+\_\+type}}$<$T$>$\+::type}



Equivalent to typename \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1arithmetic__type_af8a59139699e4fb6bfb5bb5bcc9538c4}{arithmetic\+\_\+type$<$\+T$>$\+::type}}. 



Definition at line \mbox{\hyperlink{stringops_8h_source_l00104}{104}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a70576f3cc2b61a4b25927f8add781bd8}\label{namespace_k_b_l_i_b___n_s_1_1detail_a70576f3cc2b61a4b25927f8add781bd8}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!filter\_signed\_t@{filter\_signed\_t}}
\index{filter\_signed\_t@{filter\_signed\_t}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{filter\_signed\_t}{filter\_signed\_t}}
{\footnotesize\ttfamily template$<$typename N $>$ \\
using \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a70576f3cc2b61a4b25927f8add781bd8}{KBLIB\+\_\+\+NS\+::detail\+::filter\+\_\+signed\+\_\+t}} = typedef typename \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1filter__signed}{filter\+\_\+signed}}$<$N$>$\+::type}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00821}{821}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a7e64e367f9d88635b2aad2974a90d050}\label{namespace_k_b_l_i_b___n_s_1_1detail_a7e64e367f9d88635b2aad2974a90d050}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!filter\_unsigned\_t@{filter\_unsigned\_t}}
\index{filter\_unsigned\_t@{filter\_unsigned\_t}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{filter\_unsigned\_t}{filter\_unsigned\_t}}
{\footnotesize\ttfamily template$<$typename N $>$ \\
using \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a7e64e367f9d88635b2aad2974a90d050}{KBLIB\+\_\+\+NS\+::detail\+::filter\+\_\+unsigned\+\_\+t}} = typedef typename \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1filter__unsigned}{filter\+\_\+unsigned}}$<$N$>$\+::type}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00832}{832}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a4ca2feb776435cad295138e923c880cd}\label{namespace_k_b_l_i_b___n_s_1_1detail_a4ca2feb776435cad295138e923c880cd}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!make\_smap\_el@{make\_smap\_el}}
\index{make\_smap\_el@{make\_smap\_el}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{make\_smap\_el}{make\_smap\_el}}
{\footnotesize\ttfamily template$<$typename N $>$ \\
using \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a4ca2feb776435cad295138e923c880cd}{KBLIB\+\_\+\+NS\+::detail\+::make\+\_\+smap\+\_\+el}} = typedef \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1type__map__el}{type\+\_\+map\+\_\+el}}$<$static\+\_\+cast$<$std\+::intmax\+\_\+t$>$(\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_afab9877cb8e222417c9060316b2dfd1b}{msb\+\_\+possible}}$<$N$>$()), N$>$}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00789}{789}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a93dda48d784c343281f70bd24e3f6771}\label{namespace_k_b_l_i_b___n_s_1_1detail_a93dda48d784c343281f70bd24e3f6771}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!no\_dangle\_t@{no\_dangle\_t}}
\index{no\_dangle\_t@{no\_dangle\_t}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{no\_dangle\_t}{no\_dangle\_t}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
using \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a93dda48d784c343281f70bd24e3f6771}{KBLIB\+\_\+\+NS\+::detail\+::no\+\_\+dangle\+\_\+t}} = typedef typename \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1no__dangle}{no\+\_\+dangle}}$<$T$>$\+::type}



Definition at line \mbox{\hyperlink{tdecl_8h_source_l00191}{191}} of file \mbox{\hyperlink{tdecl_8h_source}{tdecl.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a1d0a05faa78003be0ead46c3c4e37e7d}\label{namespace_k_b_l_i_b___n_s_1_1detail_a1d0a05faa78003be0ead46c3c4e37e7d}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!str\_type\_t@{str\_type\_t}}
\index{str\_type\_t@{str\_type\_t}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{str\_type\_t}{str\_type\_t}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
using \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_a1d0a05faa78003be0ead46c3c4e37e7d}{KBLIB\+\_\+\+NS\+::detail\+::str\+\_\+type\+\_\+t}} = typedef typename \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type}{str\+\_\+type}}$<$T$>$\+::type}



Provides the natural stringlike type for representing a T. 



Definition at line \mbox{\hyperlink{stringops_8h_source_l00204}{204}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_afb592cea624c91f864cccec8c3b2708b}\label{namespace_k_b_l_i_b___n_s_1_1detail_afb592cea624c91f864cccec8c3b2708b}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!tuple\_type\_t@{tuple\_type\_t}}
\index{tuple\_type\_t@{tuple\_type\_t}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{tuple\_type\_t}{tuple\_type\_t}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
using \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail_afb592cea624c91f864cccec8c3b2708b}{KBLIB\+\_\+\+NS\+::detail\+::tuple\+\_\+type\+\_\+t}} = typedef typename \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1tuple__type}{tuple\+\_\+type}}$<$T$>$\+::type}

Equivalent to typename \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1tuple__type_a2c6ad88d74d1f77095b2c14430fa6279}{tuple\+\_\+type$<$\+T$>$\+::type}} 

Definition at line \mbox{\hyperlink{variant_8h_source_l00136}{136}} of file \mbox{\hyperlink{variant_8h_source}{variant.\+h}}.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a3353ad1db2ece08d867eb4920ec09137}\label{namespace_k_b_l_i_b___n_s_1_1detail_a3353ad1db2ece08d867eb4920ec09137}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!calc\_resizable@{calc\_resizable}}
\index{calc\_resizable@{calc\_resizable}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{calc\_resizable()}{calc\_resizable()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename $>$ \\
auto KBLIB\+\_\+\+NS\+::detail\+::calc\+\_\+resizable (\begin{DoxyParamCaption}\item[{}]{... }\end{DoxyParamCaption}) -\/$>$  std\+::false\+\_\+type\hspace{0.3cm}{\ttfamily [noexcept]}}

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a917b16b05f6a6e67dd5bde48eefa05a1}\label{namespace_k_b_l_i_b___n_s_1_1detail_a917b16b05f6a6e67dd5bde48eefa05a1}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!calc\_resizable@{calc\_resizable}}
\index{calc\_resizable@{calc\_resizable}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{calc\_resizable()}{calc\_resizable()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename C , typename  = decltype(std\+::declval$<$\+C\&$>$().\+resize(0))$>$ \\
auto KBLIB\+\_\+\+NS\+::detail\+::calc\+\_\+resizable (\begin{DoxyParamCaption}\item[{int}]{ }\end{DoxyParamCaption}) -\/$>$  std\+::true\+\_\+type\hspace{0.3cm}{\ttfamily [noexcept]}}

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a7cd69120adb211f93ff7c0fe90ca8b54}\label{namespace_k_b_l_i_b___n_s_1_1detail_a7cd69120adb211f93ff7c0fe90ca8b54}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!concat\_impl@{concat\_impl}}
\index{concat\_impl@{concat\_impl}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{concat\_impl()}{concat\_impl()}}
{\footnotesize\ttfamily template$<$typename string , typename... S, std\+::size\+\_\+t... I$>$ \\
auto KBLIB\+\_\+\+NS\+::detail\+::concat\+\_\+impl (\begin{DoxyParamCaption}\item[{std\+::index\+\_\+sequence$<$ I... $>$}]{,  }\item[{S \&\&...}]{ins }\end{DoxyParamCaption}) -\/$>$ string }



Definition at line \mbox{\hyperlink{stringops_8h_source_l00279}{279}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_ac992e4a88d3dffba45f75f3912cb44d4}\label{namespace_k_b_l_i_b___n_s_1_1detail_ac992e4a88d3dffba45f75f3912cb44d4}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!do\_invoke@{do\_invoke}}
\index{do\_invoke@{do\_invoke}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{do\_invoke()}{do\_invoke()}\hspace{0.1cm}{\footnotesize\ttfamily [1/5]}}
{\footnotesize\ttfamily template$<$typename F , typename... Args, \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+member\+\_\+pointer$<$ \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a98c871b73b590b089f642ee077b87f1e}{remove\+\_\+cvref\+\_\+t}}$<$ F $>$ $>$\+::value, int $>$  = 0$>$ \\
constexpr auto KBLIB\+\_\+\+NS\+::detail\+::do\+\_\+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_l00087}{87}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_af9ee8c1f1f1160c865cc3f9d1ceef893}\label{namespace_k_b_l_i_b___n_s_1_1detail_af9ee8c1f1f1160c865cc3f9d1ceef893}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!do\_invoke@{do\_invoke}}
\index{do\_invoke@{do\_invoke}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{do\_invoke()}{do\_invoke()}\hspace{0.1cm}{\footnotesize\ttfamily [2/5]}}
{\footnotesize\ttfamily template$<$typename F , typename Object , typename... Args, \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+pointer$<$ \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a98c871b73b590b089f642ee077b87f1e}{remove\+\_\+cvref\+\_\+t}}$<$ Object $>$ $>$\+::value and std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ F $>$\+::value, int $>$  = 0$>$ \\
constexpr auto KBLIB\+\_\+\+NS\+::detail\+::do\+\_\+invoke (\begin{DoxyParamCaption}\item[{F}]{f,  }\item[{Object \&\&}]{obj,  }\item[{Args \&\&...}]{args }\end{DoxyParamCaption}) -\/$>$ decltype(auto) \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00096}{96}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a04edb301b3d6aa535418f8fba8797bc0}\label{namespace_k_b_l_i_b___n_s_1_1detail_a04edb301b3d6aa535418f8fba8797bc0}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!do\_invoke@{do\_invoke}}
\index{do\_invoke@{do\_invoke}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{do\_invoke()}{do\_invoke()}\hspace{0.1cm}{\footnotesize\ttfamily [3/5]}}
{\footnotesize\ttfamily template$<$typename F , typename Pointer , typename... Args, \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+pointer$<$ Pointer $>$\+::value and std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ F $>$\+::value, int $>$  = 0$>$ \\
constexpr auto KBLIB\+\_\+\+NS\+::detail\+::do\+\_\+invoke (\begin{DoxyParamCaption}\item[{F}]{f,  }\item[{Pointer}]{ptr,  }\item[{Args \&\&...}]{args }\end{DoxyParamCaption}) -\/$>$ decltype(auto) \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00106}{106}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a5632ed7ff5a761ce1f2e085968b3af46}\label{namespace_k_b_l_i_b___n_s_1_1detail_a5632ed7ff5a761ce1f2e085968b3af46}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!do\_invoke@{do\_invoke}}
\index{do\_invoke@{do\_invoke}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{do\_invoke()}{do\_invoke()}\hspace{0.1cm}{\footnotesize\ttfamily [4/5]}}
{\footnotesize\ttfamily template$<$typename Member , typename Object , \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+pointer$<$ \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a98c871b73b590b089f642ee077b87f1e}{remove\+\_\+cvref\+\_\+t}}$<$ Object $>$ $>$\+::value and std\+::is\+\_\+member\+\_\+object\+\_\+pointer$<$ Member $>$\+::value, int $>$  = 0$>$ \\
constexpr auto KBLIB\+\_\+\+NS\+::detail\+::do\+\_\+invoke (\begin{DoxyParamCaption}\item[{Member}]{mem,  }\item[{Object \&\&}]{obj }\end{DoxyParamCaption}) -\/$>$ decltype(auto) \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00115}{115}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_ad1f7dd80ce8544abd71e83910f2eaaa7}\label{namespace_k_b_l_i_b___n_s_1_1detail_ad1f7dd80ce8544abd71e83910f2eaaa7}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!do\_invoke@{do\_invoke}}
\index{do\_invoke@{do\_invoke}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{do\_invoke()}{do\_invoke()}\hspace{0.1cm}{\footnotesize\ttfamily [5/5]}}
{\footnotesize\ttfamily template$<$typename Member , typename Pointer , \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+pointer$<$ Pointer $>$\+::value and std\+::is\+\_\+member\+\_\+object\+\_\+pointer$<$ Member $>$\+::value, int $>$  = 0$>$ \\
constexpr auto KBLIB\+\_\+\+NS\+::detail\+::do\+\_\+invoke (\begin{DoxyParamCaption}\item[{Member}]{mem,  }\item[{Pointer}]{ptr }\end{DoxyParamCaption}) -\/$>$ decltype(auto) \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00124}{124}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a62231f99aa3fe4d8f764afe5f78d6c06}\label{namespace_k_b_l_i_b___n_s_1_1detail_a62231f99aa3fe4d8f764afe5f78d6c06}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!get\_hash\_order@{get\_hash\_order}}
\index{get\_hash\_order@{get\_hash\_order}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{get\_hash\_order()}{get\_hash\_order()}}
{\footnotesize\ttfamily constexpr auto KBLIB\+\_\+\+NS\+::detail\+::get\+\_\+hash\+\_\+order (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_af2d769d113da59f30bf2c3eafdb3f1b1}{endian}} \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{tdecl_8h_source_l00215}{215}} of file \mbox{\hyperlink{tdecl_8h_source}{tdecl.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_ac19de1edcaaf73c6b34c1b43b262f0d1}\label{namespace_k_b_l_i_b___n_s_1_1detail_ac19de1edcaaf73c6b34c1b43b262f0d1}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!ignore@{ignore}}
\index{ignore@{ignore}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{ignore()}{ignore()}}
{\footnotesize\ttfamily template$<$typename... Ts$>$ \\
constexpr auto KBLIB\+\_\+\+NS\+::detail\+::ignore (\begin{DoxyParamCaption}\item[{Ts \&\&}]{... }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00646}{646}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a5e66be3e3295ba8fd10cae1f02637a98}\label{namespace_k_b_l_i_b___n_s_1_1detail_a5e66be3e3295ba8fd10cae1f02637a98}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!indexed\_visitor\_impl@{indexed\_visitor\_impl}}
\index{indexed\_visitor\_impl@{indexed\_visitor\_impl}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{indexed\_visitor\_impl()}{indexed\_visitor\_impl()}}
{\footnotesize\ttfamily template$<$typename Variant , typename F , std\+::size\+\_\+t... Is$>$ \\
constexpr auto KBLIB\+\_\+\+NS\+::detail\+::indexed\+\_\+visitor\+\_\+impl (\begin{DoxyParamCaption}\item[{std\+::index\+\_\+sequence$<$ Is... $>$}]{ }\end{DoxyParamCaption}) -\/$>$ auto \hspace{0.3cm}{\ttfamily [constexpr]}}



Generates an array of function pointers which will unwrap the variant and pass the index to the function. 



Definition at line \mbox{\hyperlink{variant_8h_source_l00143}{143}} of file \mbox{\hyperlink{variant_8h_source}{variant.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a55519861f36b26fd4a40e996bd8d89f0}\label{namespace_k_b_l_i_b___n_s_1_1detail_a55519861f36b26fd4a40e996bd8d89f0}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!msb@{msb}}
\index{msb@{msb}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{msb()}{msb()}}
{\footnotesize\ttfamily constexpr auto KBLIB\+\_\+\+NS\+::detail\+::msb (\begin{DoxyParamCaption}\item[{std\+::uintmax\+\_\+t}]{x }\end{DoxyParamCaption}) -\/$>$ std\+::uintmax\+\_\+t \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00732}{732}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_afab9877cb8e222417c9060316b2dfd1b}\label{namespace_k_b_l_i_b___n_s_1_1detail_afab9877cb8e222417c9060316b2dfd1b}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!msb\_possible@{msb\_possible}}
\index{msb\_possible@{msb\_possible}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{msb\_possible()}{msb\_possible()}}
{\footnotesize\ttfamily template$<$typename Num $>$ \\
constexpr auto KBLIB\+\_\+\+NS\+::detail\+::msb\+\_\+possible (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ Num \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00743}{743}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a2e0ac1e3951bb892dc6c1444bf4d45b7}\label{namespace_k_b_l_i_b___n_s_1_1detail_a2e0ac1e3951bb892dc6c1444bf4d45b7}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!swap\_tuple\_impl@{swap\_tuple\_impl}}
\index{swap\_tuple\_impl@{swap\_tuple\_impl}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{swap\_tuple\_impl()}{swap\_tuple\_impl()}}
{\footnotesize\ttfamily template$<$typename T , std\+::size\+\_\+t... Is$>$ \\
constexpr auto KBLIB\+\_\+\+NS\+::detail\+::swap\+\_\+tuple\+\_\+impl (\begin{DoxyParamCaption}\item[{T \&}]{a,  }\item[{T \&}]{b,  }\item[{std\+::index\+\_\+sequence$<$ Is... $>$}]{ }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00650}{650}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a53fda8b377c51c64a5c610ff935391d3}\label{namespace_k_b_l_i_b___n_s_1_1detail_a53fda8b377c51c64a5c610ff935391d3}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!to\_char\_type@{to\_char\_type}}
\index{to\_char\_type@{to\_char\_type}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{to\_char\_type()}{to\_char\_type()}}
{\footnotesize\ttfamily template$<$typename CharT , typename IntT $>$ \\
auto KBLIB\+\_\+\+NS\+::detail\+::to\+\_\+char\+\_\+type (\begin{DoxyParamCaption}\item[{IntT}]{ch }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Definition at line \mbox{\hyperlink{stringops_8h_source_l00564}{564}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a40c8a2e25abcdb8d82f1a70755591284}\label{namespace_k_b_l_i_b___n_s_1_1detail_a40c8a2e25abcdb8d82f1a70755591284}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!to\_int\_type@{to\_int\_type}}
\index{to\_int\_type@{to\_int\_type}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{to\_int\_type()}{to\_int\_type()}}
{\footnotesize\ttfamily template$<$typename CharT $>$ \\
auto KBLIB\+\_\+\+NS\+::detail\+::to\+\_\+int\+\_\+type (\begin{DoxyParamCaption}\item[{CharT}]{ch }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Definition at line \mbox{\hyperlink{stringops_8h_source_l00560}{560}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a4caa5ee7344d51c6ef2024316fe7bc9f}\label{namespace_k_b_l_i_b___n_s_1_1detail_a4caa5ee7344d51c6ef2024316fe7bc9f}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!tolower@{tolower}}
\index{tolower@{tolower}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{tolower()}{tolower()}}
{\footnotesize\ttfamily auto KBLIB\+\_\+\+NS\+::detail\+::tolower (\begin{DoxyParamCaption}\item[{char}]{ch }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Definition at line \mbox{\hyperlink{stringops_8h_source_l00568}{568}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a40ab156c25eebc279846777570e1ee1f}\label{namespace_k_b_l_i_b___n_s_1_1detail_a40ab156c25eebc279846777570e1ee1f}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!toupper@{toupper}}
\index{toupper@{toupper}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{toupper()}{toupper()}}
{\footnotesize\ttfamily auto KBLIB\+\_\+\+NS\+::detail\+::toupper (\begin{DoxyParamCaption}\item[{char}]{ch }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Definition at line \mbox{\hyperlink{stringops_8h_source_l00576}{576}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_aff4cab12e5283734ce6fd3adb1ecae5b}\label{namespace_k_b_l_i_b___n_s_1_1detail_aff4cab12e5283734ce6fd3adb1ecae5b}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!towlower@{towlower}}
\index{towlower@{towlower}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{towlower()}{towlower()}}
{\footnotesize\ttfamily auto KBLIB\+\_\+\+NS\+::detail\+::towlower (\begin{DoxyParamCaption}\item[{wchar\+\_\+t}]{ch }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Definition at line \mbox{\hyperlink{stringops_8h_source_l00572}{572}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_ae36bc8ea869fc297b120e114c7f375c2}\label{namespace_k_b_l_i_b___n_s_1_1detail_ae36bc8ea869fc297b120e114c7f375c2}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!towupper@{towupper}}
\index{towupper@{towupper}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{towupper()}{towupper()}}
{\footnotesize\ttfamily auto KBLIB\+\_\+\+NS\+::detail\+::towupper (\begin{DoxyParamCaption}\item[{wchar\+\_\+t}]{ch }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Definition at line \mbox{\hyperlink{stringops_8h_source_l00580}{580}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_aaaa6726d508858c00cdcc6a32342d7c0}\label{namespace_k_b_l_i_b___n_s_1_1detail_aaaa6726d508858c00cdcc6a32342d7c0}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!trim\_array@{trim\_array}}
\index{trim\_array@{trim\_array}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{trim\_array()}{trim\_array()}}
{\footnotesize\ttfamily template$<$typename T , int N, int... I$>$ \\
constexpr auto KBLIB\+\_\+\+NS\+::detail\+::trim\+\_\+array (\begin{DoxyParamCaption}\item[{const T(\&)}]{arr\mbox{[}\+N\mbox{]},  }\item[{std\+::integer\+\_\+sequence$<$ int, I... $>$}]{ }\end{DoxyParamCaption}) -\/$>$ std\+::array$<$T, std\+::integer\+\_\+sequence$<$int, I...$>$\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a4c92ee94a7a250948d44a29b0e7b3e78}{\+::size}}()$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Truncates an array to its first N elements. 


\begin{DoxyParams}{Parameters}
{\em arr} & An array of at least N elements to truncate. \\
\hline
{\em Is} & An implementation detail. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
std\+::array$<$\+T, Is.\+size()$>$ An array consisting of the first N elements of arr. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{traits_8h_source_l00105}{105}} of file \mbox{\hyperlink{traits_8h_source}{traits.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a4348c959ea3b2e34e77f5025f50304af}\label{namespace_k_b_l_i_b___n_s_1_1detail_a4348c959ea3b2e34e77f5025f50304af}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!visit\_impl@{visit\_impl}}
\index{visit\_impl@{visit\_impl}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{visit\_impl()}{visit\_impl()}}
{\footnotesize\ttfamily template$<$typename V , typename F , std\+::size\+\_\+t I, std\+::size\+\_\+t... Is$>$ \\
constexpr decltype(auto) KBLIB\+\_\+\+NS\+::detail\+::visit\+\_\+impl (\begin{DoxyParamCaption}\item[{V \&\&}]{v,  }\item[{F \&\&}]{f,  }\item[{std\+::index\+\_\+sequence$<$ I, Is... $>$}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{variant_8h_source_l00261}{261}} of file \mbox{\hyperlink{variant_8h_source}{variant.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a491e959f533411b0a4e8c6d18631ae6d}\label{namespace_k_b_l_i_b___n_s_1_1detail_a491e959f533411b0a4e8c6d18631ae6d}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!visit\_nop\_impl@{visit\_nop\_impl}}
\index{visit\_nop\_impl@{visit\_nop\_impl}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{visit\_nop\_impl()}{visit\_nop\_impl()}}
{\footnotesize\ttfamily template$<$typename V , typename F , std\+::size\+\_\+t I, std\+::size\+\_\+t... Is$>$ \\
constexpr void KBLIB\+\_\+\+NS\+::detail\+::visit\+\_\+nop\+\_\+impl (\begin{DoxyParamCaption}\item[{V \&\&}]{v,  }\item[{F \&\&}]{f,  }\item[{std\+::index\+\_\+sequence$<$ I, Is... $>$}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{variant_8h_source_l00276}{276}} of file \mbox{\hyperlink{variant_8h_source}{variant.\+h}}.



\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_a71c4fabb411878765b400dc95fee5882}\label{namespace_k_b_l_i_b___n_s_1_1detail_a71c4fabb411878765b400dc95fee5882}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!invocable\_with\_all\_v@{invocable\_with\_all\_v}}
\index{invocable\_with\_all\_v@{invocable\_with\_all\_v}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{invocable\_with\_all\_v}{invocable\_with\_all\_v}}
{\footnotesize\ttfamily template$<$typename F , typename... Ts$>$ \\
constexpr bool KBLIB\+\_\+\+NS\+::detail\+::invocable\+\_\+with\+\_\+all\+\_\+v = (\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a12b5ffbb1ba36b917437285c8df9c4fc}{ignore\+\_\+t}}$<$std\+::invoke\+\_\+result\+\_\+t$<$F, Ts$>$, std\+::true\+\_\+type$>$\+::value and ...)\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{variant_8h_source_l00230}{230}} of file \mbox{\hyperlink{variant_8h_source}{variant.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_ac6d52be296a693f6d344c35f27be1bee}\label{namespace_k_b_l_i_b___n_s_1_1detail_ac6d52be296a693f6d344c35f27be1bee}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!max\_val@{max\_val}}
\index{max\_val@{max\_val}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{max\_val}{max\_val}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr std\+::intmax\+\_\+t KBLIB\+\_\+\+NS\+::detail\+::max\+\_\+val = std\+::numeric\+\_\+limits$<$T$>$\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1nums_a8f5e5a9f72912486d090c7f2727d2ca0}{\+::max}}()\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00730}{730}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail_adfe379875f920e6a2cd1e8a30aac5f53}\label{namespace_k_b_l_i_b___n_s_1_1detail_adfe379875f920e6a2cd1e8a30aac5f53}} 
\index{KBLIB\_NS::detail@{KBLIB\_NS::detail}!v\_invocable\_with\_all\_v@{v\_invocable\_with\_all\_v}}
\index{v\_invocable\_with\_all\_v@{v\_invocable\_with\_all\_v}!KBLIB\_NS::detail@{KBLIB\_NS::detail}}
\doxysubsubsection{\texorpdfstring{v\_invocable\_with\_all\_v}{v\_invocable\_with\_all\_v}}
{\footnotesize\ttfamily template$<$typename Callable , typename Variant $>$ \\
constexpr bool KBLIB\+\_\+\+NS\+::detail\+::v\+\_\+invocable\+\_\+with\+\_\+all\+\_\+v$<$ F, const std\+::variant$<$ Ts... $>$ \&\& $>$ = false\hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{variant_8h_source_l00234}{234}} of file \mbox{\hyperlink{variant_8h_source}{variant.\+h}}.

