\hypertarget{namespacekblib_1_1detail}{}\doxysection{kblib\+::detail Namespace Reference} \label{namespacekblib_1_1detail}\index{kblib::detail@{kblib::detail}} The namespace used for implementation details within kblib. \doxysubsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{structkblib_1_1detail_1_1apply__impl}{apply\+\_\+impl}} \item struct \mbox{\hyperlink{structkblib_1_1detail_1_1arithmetic__type}{arithmetic\+\_\+type}} \begin{DoxyCompactList}\small\item\em Filter only arithmetic types. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structkblib_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{structkblib_1_1detail_1_1buildiota__impl}{buildiota\+\_\+impl}} \item struct \mbox{\hyperlink{structkblib_1_1detail_1_1buildiota__impl_3_01_array_00_01false_01_4}{buildiota\+\_\+impl$<$ Array, false $>$}} \item struct \mbox{\hyperlink{structkblib_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{structkblib_1_1detail_1_1buildiota__impl_3_01_container_00_01true_01_4}{buildiota\+\_\+impl$<$ Container, true $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail_1_1filter__signed}{filter\+\_\+signed}} \item struct \mbox{\hyperlink{structkblib_1_1detail_1_1filter__signed_3_01_n_00_01true_01_4}{filter\+\_\+signed$<$ N, true $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail_1_1filter__unsigned}{filter\+\_\+unsigned}} \item struct \mbox{\hyperlink{structkblib_1_1detail_1_1filter__unsigned_3_01_n_00_01true_01_4}{filter\+\_\+unsigned$<$ N, true $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail_1_1next__larger__signed}{next\+\_\+larger\+\_\+signed}} \item struct \mbox{\hyperlink{structkblib_1_1detail_1_1no__dangle}{no\+\_\+dangle}} \item struct \mbox{\hyperlink{structkblib_1_1detail_1_1no__dangle_3_01_t_01_6_6_01_4}{no\+\_\+dangle$<$ T \&\& $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail_1_1node}{node}} \item struct \mbox{\hyperlink{structkblib_1_1detail_1_1pointer}{pointer}} \item struct \mbox{\hyperlink{structkblib_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{structkblib_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{structkblib_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{structkblib_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{structkblib_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{structkblib_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{structkblib_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{structkblib_1_1detail_1_1tag}{tag}} \item struct \mbox{\hyperlink{structkblib_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{structkblib_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{structkblib_1_1detail_1_1type__list}{type\+\_\+list}} \item struct \mbox{\hyperlink{structkblib_1_1detail_1_1type__map}{type\+\_\+map}} \item struct \mbox{\hyperlink{structkblib_1_1detail_1_1type__map__el}{type\+\_\+map\+\_\+el}} \item struct \mbox{\hyperlink{structkblib_1_1detail_1_1value}{value}} \item struct \mbox{\hyperlink{structkblib_1_1detail_1_1values}{values}} \item struct \mbox{\hyperlink{structkblib_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{namespacekblib_1_1detail_aa78d53d4378e2b944726396fd2ea2cbc}{make\+\_\+smap\+\_\+el}} = \mbox{\hyperlink{structkblib_1_1detail_1_1type__map__el}{type\+\_\+map\+\_\+el}}$<$ static\+\_\+cast$<$ std\+::intmax\+\_\+t $>$(\mbox{\hyperlink{namespacekblib_1_1detail_a7862ff8e4fb97f3ad170829296360714}{msb\+\_\+possible}}$<$ N $>$()), N $>$ \item {\footnotesize template$<$typename N $>$ }\\using \mbox{\hyperlink{namespacekblib_1_1detail_a81503c6f3c66c26bcacc9a672cdc1679}{filter\+\_\+signed\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1detail_1_1filter__signed}{filter\+\_\+signed}}$<$ N $>$\+::type \item {\footnotesize template$<$typename N $>$ }\\using \mbox{\hyperlink{namespacekblib_1_1detail_a1d5a56a57c2822f86888933c0fac7164}{filter\+\_\+unsigned\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1detail_1_1filter__unsigned}{filter\+\_\+unsigned}}$<$ N $>$\+::type \item {\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespacekblib_1_1detail_a648ea881d24251358900553878900cf8}{arithmetic\+\_\+type\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1detail_1_1arithmetic__type}{arithmetic\+\_\+type}}$<$ T $>$\+::type \begin{DoxyCompactList}\small\item\em Equivalent to typename \mbox{\hyperlink{structkblib_1_1detail_1_1arithmetic__type_a691889e4ec8c53a00e428f5382f45b94}{arithmetic\+\_\+type$<$\+T$>$\+::type}}. \end{DoxyCompactList}\item {\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespacekblib_1_1detail_a60fec688ea68a688f870726b652cf69f}{str\+\_\+type\+\_\+t}} = typename \mbox{\hyperlink{structkblib_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{namespacekblib_1_1detail_aca9cd901eb773c411961ea11739f3d40}{no\+\_\+dangle\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1detail_1_1no__dangle}{no\+\_\+dangle}}$<$ T $>$\+::type \item {\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespacekblib_1_1detail_aa7631710f2a34cd76087894745e89e8f}{tuple\+\_\+type\+\_\+t}} = typename \mbox{\hyperlink{structkblib_1_1detail_1_1tuple__type}{tuple\+\_\+type}}$<$ T $>$\+::type \end{DoxyCompactItemize} \doxysubsection*{Functions} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename F , typename... Args, \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+member\+\_\+pointer$<$ \mbox{\hyperlink{namespacekblib_ad3067cf43d6c4d6d61e9bbb81c145cf9}{remove\+\_\+cvref\+\_\+t}}$<$ F $>$ $>$\+::value, int $>$ = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_1_1detail_a9fcbe60cc8d89d741dc327bee247fbcb}{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{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+pointer$<$ \mbox{\hyperlink{namespacekblib_ad3067cf43d6c4d6d61e9bbb81c145cf9}{remove\+\_\+cvref\+\_\+t}}$<$ Object $>$ $>$\+::value and std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ F $>$\+::value, int $>$ = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_1_1detail_a3814b2a778b24c77c5b25f0ba6ee517a}{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{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+pointer$<$ Pointer $>$\+::value and std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ F $>$\+::value, int $>$ = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_1_1detail_a45e19fa5297851e924dc28b9ca9ebc5c}{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{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+pointer$<$ \mbox{\hyperlink{namespacekblib_ad3067cf43d6c4d6d61e9bbb81c145cf9}{remove\+\_\+cvref\+\_\+t}}$<$ Object $>$ $>$\+::value and std\+::is\+\_\+member\+\_\+object\+\_\+pointer$<$ Member $>$\+::value, int $>$ = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_1_1detail_a53d75bc53ab7612ecbf8f31d4f125194}{do\+\_\+invoke}} (Member mem, Object \&\&obj) noexcept -\/$>$ decltype(auto) \item {\footnotesize template$<$typename Member , typename Pointer , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+pointer$<$ Pointer $>$\+::value and std\+::is\+\_\+member\+\_\+object\+\_\+pointer$<$ Member $>$\+::value, int $>$ = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_1_1detail_a9be193ea0038cdf6bec7cef4173f2d77}{do\+\_\+invoke}} (Member mem, Pointer ptr) noexcept -\/$>$ decltype(auto) \item {\footnotesize template$<$typename... Ts$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_1_1detail_a468066bdd6f559d4f86d0b773af3e683}{ignore}} (Ts \&\&...) noexcept -\/$>$ void \item {\footnotesize template$<$typename T , std\+::size\+\_\+t... Is$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_1_1detail_adaf3b8b27764608e70dea9b340106c20}{swap\+\_\+tuple\+\_\+impl}} (T \&\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}, T \&b, std\+::index\+\_\+sequence$<$ Is... $>$) noexcept(noexcept(\mbox{\hyperlink{structkblib_1_1ignore}{ignore}}(((void) \mbox{\hyperlink{namespacekblib_a4aadfdece3872e99551aa812ac3bac27}{swap}}(std\+::get$<$ Is $>$(\mbox{\hyperlink{namespacekblib_a22831dce77d5f35c13930b5e30a59f07}{a}}), std\+::get$<$ Is $>$(b)), 0)...))) -\/$>$ void \item constexpr auto \mbox{\hyperlink{namespacekblib_1_1detail_add427a975267711b7a1a94fc13aab8b4}{msb}} (std\+::uintmax\+\_\+t x) -\/$>$ std\+::uintmax\+\_\+t \item {\footnotesize template$<$typename Num $>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_1_1detail_a7862ff8e4fb97f3ad170829296360714}{msb\+\_\+possible}} () -\/$>$ Num \item {\footnotesize template$<$typename string , typename... S, std\+::size\+\_\+t... I$>$ }\\auto \mbox{\hyperlink{namespacekblib_1_1detail_a99e8609e0af635b31b30ac17a57456a7}{concat\+\_\+impl}} (std\+::index\+\_\+sequence$<$ I... $>$, S \&\&... ins) -\/$>$ string \item {\footnotesize template$<$typename CharT $>$ }\\auto \mbox{\hyperlink{namespacekblib_1_1detail_a837096897f96ab13aad120004c627f08}{to\+\_\+int\+\_\+type}} (CharT ch) \item {\footnotesize template$<$typename CharT , typename IntT $>$ }\\auto \mbox{\hyperlink{namespacekblib_1_1detail_a144a5c91984c56014efceb17cd66800e}{to\+\_\+char\+\_\+type}} (IntT ch) \item auto \mbox{\hyperlink{namespacekblib_1_1detail_a963222bf43702a2b2f274c59a76a26da}{tolower}} (char ch) \item auto \mbox{\hyperlink{namespacekblib_1_1detail_a5c36259b747c433960c63641bd39c2af}{towlower}} (wchar\+\_\+t ch) \item auto \mbox{\hyperlink{namespacekblib_1_1detail_a3d9c847e2f656fb6fed6f21b0339717d}{toupper}} (char ch) \item auto \mbox{\hyperlink{namespacekblib_1_1detail_abf2db1653c3914ae47a28329b51986fe}{towupper}} (wchar\+\_\+t ch) \item constexpr auto \mbox{\hyperlink{namespacekblib_1_1detail_aa27cb7ef8337a7d338355c3a93e1431b}{get\+\_\+hash\+\_\+order}} () -\/$>$ \mbox{\hyperlink{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694}{endian}} \item {\footnotesize template$<$typename T , int N, int... I$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_1_1detail_a8e69943e2b7ab538494374e097321357}{trim\+\_\+array}} (const T(\&arr)\mbox{[}N\mbox{]}, std\+::integer\+\_\+sequence$<$ int, I... $>$) -\/$>$ std\+::array$<$ T, std\+::integer\+\_\+sequence$<$ int, I... $>$\mbox{\hyperlink{namespacekblib_a0e74aee94f446396c8f8b7bf34b16acb}{\+::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{namespacekblib_1_1detail_ac5dbc22e701244360a7107a086f67d3c}{calc\+\_\+resizable}} (int) noexcept -\/$>$ std\+::true\+\_\+type \item {\footnotesize template$<$typename $>$ }\\auto \mbox{\hyperlink{namespacekblib_1_1detail_ac6e7201044196c9c8314f7f6c3a2f168}{calc\+\_\+resizable}} (...) noexcept -\/$>$ std\+::false\+\_\+type \item {\footnotesize template$<$typename Variant , typename F , std\+::size\+\_\+t... Is$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_1_1detail_a281d17d136e8e95233607f0c8c049f8b}{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{namespacekblib_1_1detail_adbf7e44a7b2e088009073f064b96bb37}{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{namespacekblib_1_1detail_ae841d811176370353222931de4d3ced9}{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{namespacekblib_1_1detail_ac83b1d792994abd35a99b63c8732c2a7}{max\+\_\+val}} = std\+::numeric\+\_\+limits$<$T$>$\mbox{\hyperlink{namespacekblib_1_1nums_a64067ecc4167ce1cfe32860ef5c1dc47}{\+::max}}() \item {\footnotesize template$<$typename F , typename... Ts$>$ }\\constexpr bool \mbox{\hyperlink{namespacekblib_1_1detail_a2293617d6736d88b70f8da0959654f87}{invocable\+\_\+with\+\_\+all\+\_\+v}} = (\mbox{\hyperlink{namespacekblib_a3cec35675700d7e15c9139e0497768e6}{ignore\+\_\+t}}$<$std\+::invoke\+\_\+result\+\_\+t$<$F, Ts$>$, std\+::true\+\_\+type$>$\+::value and ...) \item {\footnotesize template$<$typename Callable , typename Variant $>$ }\\constexpr bool \mbox{\hyperlink{namespacekblib_1_1detail_afb0630c3153474d6a942e9137b80350b}{v\+\_\+invocable\+\_\+with\+\_\+all\+\_\+v}} = false \end{DoxyCompactItemize} \doxysubsection{Detailed Description} The namespace used for implementation details within kblib. \doxysubsection{Typedef Documentation} \mbox{\Hypertarget{namespacekblib_1_1detail_a648ea881d24251358900553878900cf8}\label{namespacekblib_1_1detail_a648ea881d24251358900553878900cf8}} \index{kblib::detail@{kblib::detail}!arithmetic\_type\_t@{arithmetic\_type\_t}} \index{arithmetic\_type\_t@{arithmetic\_type\_t}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{arithmetic\_type\_t}{arithmetic\_type\_t}} {\footnotesize\ttfamily template$<$typename T $>$ \\ using \mbox{\hyperlink{namespacekblib_1_1detail_a648ea881d24251358900553878900cf8}{kblib\+::detail\+::arithmetic\+\_\+type\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_1_1detail_1_1arithmetic__type}{arithmetic\+\_\+type}}$<$T$>$\+::type} Equivalent to typename \mbox{\hyperlink{structkblib_1_1detail_1_1arithmetic__type_a691889e4ec8c53a00e428f5382f45b94}{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{namespacekblib_1_1detail_a81503c6f3c66c26bcacc9a672cdc1679}\label{namespacekblib_1_1detail_a81503c6f3c66c26bcacc9a672cdc1679}} \index{kblib::detail@{kblib::detail}!filter\_signed\_t@{filter\_signed\_t}} \index{filter\_signed\_t@{filter\_signed\_t}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{filter\_signed\_t}{filter\_signed\_t}} {\footnotesize\ttfamily template$<$typename N $>$ \\ using \mbox{\hyperlink{namespacekblib_1_1detail_a81503c6f3c66c26bcacc9a672cdc1679}{kblib\+::detail\+::filter\+\_\+signed\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_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{namespacekblib_1_1detail_a1d5a56a57c2822f86888933c0fac7164}\label{namespacekblib_1_1detail_a1d5a56a57c2822f86888933c0fac7164}} \index{kblib::detail@{kblib::detail}!filter\_unsigned\_t@{filter\_unsigned\_t}} \index{filter\_unsigned\_t@{filter\_unsigned\_t}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{filter\_unsigned\_t}{filter\_unsigned\_t}} {\footnotesize\ttfamily template$<$typename N $>$ \\ using \mbox{\hyperlink{namespacekblib_1_1detail_a1d5a56a57c2822f86888933c0fac7164}{kblib\+::detail\+::filter\+\_\+unsigned\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_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{namespacekblib_1_1detail_aa78d53d4378e2b944726396fd2ea2cbc}\label{namespacekblib_1_1detail_aa78d53d4378e2b944726396fd2ea2cbc}} \index{kblib::detail@{kblib::detail}!make\_smap\_el@{make\_smap\_el}} \index{make\_smap\_el@{make\_smap\_el}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{make\_smap\_el}{make\_smap\_el}} {\footnotesize\ttfamily template$<$typename N $>$ \\ using \mbox{\hyperlink{namespacekblib_1_1detail_aa78d53d4378e2b944726396fd2ea2cbc}{kblib\+::detail\+::make\+\_\+smap\+\_\+el}} = typedef \mbox{\hyperlink{structkblib_1_1detail_1_1type__map__el}{type\+\_\+map\+\_\+el}}$<$static\+\_\+cast$<$std\+::intmax\+\_\+t$>$(\mbox{\hyperlink{namespacekblib_1_1detail_a7862ff8e4fb97f3ad170829296360714}{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{namespacekblib_1_1detail_aca9cd901eb773c411961ea11739f3d40}\label{namespacekblib_1_1detail_aca9cd901eb773c411961ea11739f3d40}} \index{kblib::detail@{kblib::detail}!no\_dangle\_t@{no\_dangle\_t}} \index{no\_dangle\_t@{no\_dangle\_t}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{no\_dangle\_t}{no\_dangle\_t}} {\footnotesize\ttfamily template$<$typename T $>$ \\ using \mbox{\hyperlink{namespacekblib_1_1detail_aca9cd901eb773c411961ea11739f3d40}{kblib\+::detail\+::no\+\_\+dangle\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_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{namespacekblib_1_1detail_a60fec688ea68a688f870726b652cf69f}\label{namespacekblib_1_1detail_a60fec688ea68a688f870726b652cf69f}} \index{kblib::detail@{kblib::detail}!str\_type\_t@{str\_type\_t}} \index{str\_type\_t@{str\_type\_t}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{str\_type\_t}{str\_type\_t}} {\footnotesize\ttfamily template$<$typename T $>$ \\ using \mbox{\hyperlink{namespacekblib_1_1detail_a60fec688ea68a688f870726b652cf69f}{kblib\+::detail\+::str\+\_\+type\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_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{namespacekblib_1_1detail_aa7631710f2a34cd76087894745e89e8f}\label{namespacekblib_1_1detail_aa7631710f2a34cd76087894745e89e8f}} \index{kblib::detail@{kblib::detail}!tuple\_type\_t@{tuple\_type\_t}} \index{tuple\_type\_t@{tuple\_type\_t}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{tuple\_type\_t}{tuple\_type\_t}} {\footnotesize\ttfamily template$<$typename T $>$ \\ using \mbox{\hyperlink{namespacekblib_1_1detail_aa7631710f2a34cd76087894745e89e8f}{kblib\+::detail\+::tuple\+\_\+type\+\_\+t}} = typedef typename \mbox{\hyperlink{structkblib_1_1detail_1_1tuple__type}{tuple\+\_\+type}}$<$T$>$\+::type} Equivalent to typename \mbox{\hyperlink{structkblib_1_1detail_1_1tuple__type_a12c8167ce13497a5ed1df1970c32d309}{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{namespacekblib_1_1detail_ac6e7201044196c9c8314f7f6c3a2f168}\label{namespacekblib_1_1detail_ac6e7201044196c9c8314f7f6c3a2f168}} \index{kblib::detail@{kblib::detail}!calc\_resizable@{calc\_resizable}} \index{calc\_resizable@{calc\_resizable}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{calc\_resizable()}{calc\_resizable()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily template$<$typename $>$ \\ auto kblib\+::detail\+::calc\+\_\+resizable (\begin{DoxyParamCaption}\item[{}]{... }\end{DoxyParamCaption}) -\/$>$ std\+::false\+\_\+type\hspace{0.3cm}{\ttfamily [noexcept]}} \mbox{\Hypertarget{namespacekblib_1_1detail_ac5dbc22e701244360a7107a086f67d3c}\label{namespacekblib_1_1detail_ac5dbc22e701244360a7107a086f67d3c}} \index{kblib::detail@{kblib::detail}!calc\_resizable@{calc\_resizable}} \index{calc\_resizable@{calc\_resizable}!kblib::detail@{kblib::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\+::detail\+::calc\+\_\+resizable (\begin{DoxyParamCaption}\item[{int}]{ }\end{DoxyParamCaption}) -\/$>$ std\+::true\+\_\+type\hspace{0.3cm}{\ttfamily [noexcept]}} \mbox{\Hypertarget{namespacekblib_1_1detail_a99e8609e0af635b31b30ac17a57456a7}\label{namespacekblib_1_1detail_a99e8609e0af635b31b30ac17a57456a7}} \index{kblib::detail@{kblib::detail}!concat\_impl@{concat\_impl}} \index{concat\_impl@{concat\_impl}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{concat\_impl()}{concat\_impl()}} {\footnotesize\ttfamily template$<$typename string , typename... S, std\+::size\+\_\+t... I$>$ \\ auto kblib\+::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{namespacekblib_1_1detail_a9fcbe60cc8d89d741dc327bee247fbcb}\label{namespacekblib_1_1detail_a9fcbe60cc8d89d741dc327bee247fbcb}} \index{kblib::detail@{kblib::detail}!do\_invoke@{do\_invoke}} \index{do\_invoke@{do\_invoke}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{do\_invoke()}{do\_invoke()}\hspace{0.1cm}{\footnotesize\ttfamily [1/5]}} {\footnotesize\ttfamily template$<$typename F , typename... Args, \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+member\+\_\+pointer$<$ \mbox{\hyperlink{namespacekblib_ad3067cf43d6c4d6d61e9bbb81c145cf9}{remove\+\_\+cvref\+\_\+t}}$<$ F $>$ $>$\+::value, int $>$ = 0$>$ \\ constexpr auto kblib\+::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{namespacekblib_1_1detail_a3814b2a778b24c77c5b25f0ba6ee517a}\label{namespacekblib_1_1detail_a3814b2a778b24c77c5b25f0ba6ee517a}} \index{kblib::detail@{kblib::detail}!do\_invoke@{do\_invoke}} \index{do\_invoke@{do\_invoke}!kblib::detail@{kblib::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{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+pointer$<$ \mbox{\hyperlink{namespacekblib_ad3067cf43d6c4d6d61e9bbb81c145cf9}{remove\+\_\+cvref\+\_\+t}}$<$ Object $>$ $>$\+::value and std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ F $>$\+::value, int $>$ = 0$>$ \\ constexpr auto kblib\+::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{namespacekblib_1_1detail_a45e19fa5297851e924dc28b9ca9ebc5c}\label{namespacekblib_1_1detail_a45e19fa5297851e924dc28b9ca9ebc5c}} \index{kblib::detail@{kblib::detail}!do\_invoke@{do\_invoke}} \index{do\_invoke@{do\_invoke}!kblib::detail@{kblib::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{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+pointer$<$ Pointer $>$\+::value and std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ F $>$\+::value, int $>$ = 0$>$ \\ constexpr auto kblib\+::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{namespacekblib_1_1detail_a53d75bc53ab7612ecbf8f31d4f125194}\label{namespacekblib_1_1detail_a53d75bc53ab7612ecbf8f31d4f125194}} \index{kblib::detail@{kblib::detail}!do\_invoke@{do\_invoke}} \index{do\_invoke@{do\_invoke}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{do\_invoke()}{do\_invoke()}\hspace{0.1cm}{\footnotesize\ttfamily [4/5]}} {\footnotesize\ttfamily template$<$typename Member , typename Object , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+pointer$<$ \mbox{\hyperlink{namespacekblib_ad3067cf43d6c4d6d61e9bbb81c145cf9}{remove\+\_\+cvref\+\_\+t}}$<$ Object $>$ $>$\+::value and std\+::is\+\_\+member\+\_\+object\+\_\+pointer$<$ Member $>$\+::value, int $>$ = 0$>$ \\ constexpr auto kblib\+::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{namespacekblib_1_1detail_a9be193ea0038cdf6bec7cef4173f2d77}\label{namespacekblib_1_1detail_a9be193ea0038cdf6bec7cef4173f2d77}} \index{kblib::detail@{kblib::detail}!do\_invoke@{do\_invoke}} \index{do\_invoke@{do\_invoke}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{do\_invoke()}{do\_invoke()}\hspace{0.1cm}{\footnotesize\ttfamily [5/5]}} {\footnotesize\ttfamily template$<$typename Member , typename Pointer , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+pointer$<$ Pointer $>$\+::value and std\+::is\+\_\+member\+\_\+object\+\_\+pointer$<$ Member $>$\+::value, int $>$ = 0$>$ \\ constexpr auto kblib\+::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{namespacekblib_1_1detail_aa27cb7ef8337a7d338355c3a93e1431b}\label{namespacekblib_1_1detail_aa27cb7ef8337a7d338355c3a93e1431b}} \index{kblib::detail@{kblib::detail}!get\_hash\_order@{get\_hash\_order}} \index{get\_hash\_order@{get\_hash\_order}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{get\_hash\_order()}{get\_hash\_order()}} {\footnotesize\ttfamily constexpr auto kblib\+::detail\+::get\+\_\+hash\+\_\+order (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a6c5de3fbe12c9c907e81b9335cf22694}{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{namespacekblib_1_1detail_a468066bdd6f559d4f86d0b773af3e683}\label{namespacekblib_1_1detail_a468066bdd6f559d4f86d0b773af3e683}} \index{kblib::detail@{kblib::detail}!ignore@{ignore}} \index{ignore@{ignore}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{ignore()}{ignore()}} {\footnotesize\ttfamily template$<$typename... Ts$>$ \\ constexpr auto kblib\+::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{namespacekblib_1_1detail_a281d17d136e8e95233607f0c8c049f8b}\label{namespacekblib_1_1detail_a281d17d136e8e95233607f0c8c049f8b}} \index{kblib::detail@{kblib::detail}!indexed\_visitor\_impl@{indexed\_visitor\_impl}} \index{indexed\_visitor\_impl@{indexed\_visitor\_impl}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{indexed\_visitor\_impl()}{indexed\_visitor\_impl()}} {\footnotesize\ttfamily template$<$typename Variant , typename F , std\+::size\+\_\+t... Is$>$ \\ constexpr auto kblib\+::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{namespacekblib_1_1detail_add427a975267711b7a1a94fc13aab8b4}\label{namespacekblib_1_1detail_add427a975267711b7a1a94fc13aab8b4}} \index{kblib::detail@{kblib::detail}!msb@{msb}} \index{msb@{msb}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{msb()}{msb()}} {\footnotesize\ttfamily constexpr auto kblib\+::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{namespacekblib_1_1detail_a7862ff8e4fb97f3ad170829296360714}\label{namespacekblib_1_1detail_a7862ff8e4fb97f3ad170829296360714}} \index{kblib::detail@{kblib::detail}!msb\_possible@{msb\_possible}} \index{msb\_possible@{msb\_possible}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{msb\_possible()}{msb\_possible()}} {\footnotesize\ttfamily template$<$typename Num $>$ \\ constexpr auto kblib\+::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{namespacekblib_1_1detail_adaf3b8b27764608e70dea9b340106c20}\label{namespacekblib_1_1detail_adaf3b8b27764608e70dea9b340106c20}} \index{kblib::detail@{kblib::detail}!swap\_tuple\_impl@{swap\_tuple\_impl}} \index{swap\_tuple\_impl@{swap\_tuple\_impl}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{swap\_tuple\_impl()}{swap\_tuple\_impl()}} {\footnotesize\ttfamily template$<$typename T , std\+::size\+\_\+t... Is$>$ \\ constexpr auto kblib\+::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{namespacekblib_1_1detail_a144a5c91984c56014efceb17cd66800e}\label{namespacekblib_1_1detail_a144a5c91984c56014efceb17cd66800e}} \index{kblib::detail@{kblib::detail}!to\_char\_type@{to\_char\_type}} \index{to\_char\_type@{to\_char\_type}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{to\_char\_type()}{to\_char\_type()}} {\footnotesize\ttfamily template$<$typename CharT , typename IntT $>$ \\ auto kblib\+::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{namespacekblib_1_1detail_a837096897f96ab13aad120004c627f08}\label{namespacekblib_1_1detail_a837096897f96ab13aad120004c627f08}} \index{kblib::detail@{kblib::detail}!to\_int\_type@{to\_int\_type}} \index{to\_int\_type@{to\_int\_type}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{to\_int\_type()}{to\_int\_type()}} {\footnotesize\ttfamily template$<$typename CharT $>$ \\ auto kblib\+::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{namespacekblib_1_1detail_a963222bf43702a2b2f274c59a76a26da}\label{namespacekblib_1_1detail_a963222bf43702a2b2f274c59a76a26da}} \index{kblib::detail@{kblib::detail}!tolower@{tolower}} \index{tolower@{tolower}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{tolower()}{tolower()}} {\footnotesize\ttfamily auto kblib\+::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{namespacekblib_1_1detail_a3d9c847e2f656fb6fed6f21b0339717d}\label{namespacekblib_1_1detail_a3d9c847e2f656fb6fed6f21b0339717d}} \index{kblib::detail@{kblib::detail}!toupper@{toupper}} \index{toupper@{toupper}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{toupper()}{toupper()}} {\footnotesize\ttfamily auto kblib\+::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{namespacekblib_1_1detail_a5c36259b747c433960c63641bd39c2af}\label{namespacekblib_1_1detail_a5c36259b747c433960c63641bd39c2af}} \index{kblib::detail@{kblib::detail}!towlower@{towlower}} \index{towlower@{towlower}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{towlower()}{towlower()}} {\footnotesize\ttfamily auto kblib\+::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{namespacekblib_1_1detail_abf2db1653c3914ae47a28329b51986fe}\label{namespacekblib_1_1detail_abf2db1653c3914ae47a28329b51986fe}} \index{kblib::detail@{kblib::detail}!towupper@{towupper}} \index{towupper@{towupper}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{towupper()}{towupper()}} {\footnotesize\ttfamily auto kblib\+::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{namespacekblib_1_1detail_a8e69943e2b7ab538494374e097321357}\label{namespacekblib_1_1detail_a8e69943e2b7ab538494374e097321357}} \index{kblib::detail@{kblib::detail}!trim\_array@{trim\_array}} \index{trim\_array@{trim\_array}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{trim\_array()}{trim\_array()}} {\footnotesize\ttfamily template$<$typename T , int N, int... I$>$ \\ constexpr auto kblib\+::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{namespacekblib_a0e74aee94f446396c8f8b7bf34b16acb}{\+::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{namespacekblib_1_1detail_adbf7e44a7b2e088009073f064b96bb37}\label{namespacekblib_1_1detail_adbf7e44a7b2e088009073f064b96bb37}} \index{kblib::detail@{kblib::detail}!visit\_impl@{visit\_impl}} \index{visit\_impl@{visit\_impl}!kblib::detail@{kblib::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\+::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{namespacekblib_1_1detail_ae841d811176370353222931de4d3ced9}\label{namespacekblib_1_1detail_ae841d811176370353222931de4d3ced9}} \index{kblib::detail@{kblib::detail}!visit\_nop\_impl@{visit\_nop\_impl}} \index{visit\_nop\_impl@{visit\_nop\_impl}!kblib::detail@{kblib::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\+::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{namespacekblib_1_1detail_a2293617d6736d88b70f8da0959654f87}\label{namespacekblib_1_1detail_a2293617d6736d88b70f8da0959654f87}} \index{kblib::detail@{kblib::detail}!invocable\_with\_all\_v@{invocable\_with\_all\_v}} \index{invocable\_with\_all\_v@{invocable\_with\_all\_v}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{invocable\_with\_all\_v}{invocable\_with\_all\_v}} {\footnotesize\ttfamily template$<$typename F , typename... Ts$>$ \\ constexpr bool kblib\+::detail\+::invocable\+\_\+with\+\_\+all\+\_\+v = (\mbox{\hyperlink{namespacekblib_a3cec35675700d7e15c9139e0497768e6}{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{namespacekblib_1_1detail_ac83b1d792994abd35a99b63c8732c2a7}\label{namespacekblib_1_1detail_ac83b1d792994abd35a99b63c8732c2a7}} \index{kblib::detail@{kblib::detail}!max\_val@{max\_val}} \index{max\_val@{max\_val}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{max\_val}{max\_val}} {\footnotesize\ttfamily template$<$typename T $>$ \\ constexpr std\+::intmax\+\_\+t kblib\+::detail\+::max\+\_\+val = std\+::numeric\+\_\+limits$<$T$>$\mbox{\hyperlink{namespacekblib_1_1nums_a64067ecc4167ce1cfe32860ef5c1dc47}{\+::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{namespacekblib_1_1detail_afb0630c3153474d6a942e9137b80350b}\label{namespacekblib_1_1detail_afb0630c3153474d6a942e9137b80350b}} \index{kblib::detail@{kblib::detail}!v\_invocable\_with\_all\_v@{v\_invocable\_with\_all\_v}} \index{v\_invocable\_with\_all\_v@{v\_invocable\_with\_all\_v}!kblib::detail@{kblib::detail}} \doxysubsubsection{\texorpdfstring{v\_invocable\_with\_all\_v}{v\_invocable\_with\_all\_v}} {\footnotesize\ttfamily template$<$typename Callable , typename Variant $>$ \\ constexpr bool kblib\+::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}}.