\hypertarget{kblib__fakestd_8h}{}\section{kblib\+\_\+fakestd.\+h File Reference} \label{kblib__fakestd_8h}\index{kblib\+\_\+fakestd.\+h@{kblib\+\_\+fakestd.\+h}} {\ttfamily \#include \char`\"{}kblib\+\_\+tdecl.\+h\char`\"{}}\newline {\ttfamily \#include $<$array$>$}\newline {\ttfamily \#include $<$memory$>$}\newline {\ttfamily \#include $<$type\+\_\+traits$>$}\newline {\ttfamily \#include $<$utility$>$}\newline Include dependency graph for kblib\+\_\+fakestd.\+h\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{kblib__fakestd_8h__incl} \end{center} \end{figure} This graph shows which files directly or indirectly include this file\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{kblib__fakestd_8h__dep__incl} \end{center} \end{figure} \subsection*{Classes} \begin{DoxyCompactItemize} \item struct \hyperlink{structkblib_1_1fakestd_1_1detail_1_1invoke__result}{kblib\+::fakestd\+::detail\+::invoke\+\_\+result$<$ Always\+Void, typename,... $>$} \item struct \hyperlink{structkblib_1_1fakestd_1_1detail_1_1invoke__result_3_01decltype_07void_07invoke_07std_1_1declval2a949569b7f113df0e2599527ee1c97c}{kblib\+::fakestd\+::detail\+::invoke\+\_\+result$<$ decltype(void(invoke(std\+::declval$<$ F $>$(), std\+::declval$<$ Args $>$()...))), F, Args... $>$} \item struct \hyperlink{structkblib_1_1fakestd_1_1invoke__result}{kblib\+::fakestd\+::invoke\+\_\+result$<$ F, Arg\+Types $>$} \item struct \hyperlink{structkblib_1_1fakestd_1_1make__void}{kblib\+::fakestd\+::make\+\_\+void$<$ Ts $>$} \item struct \hyperlink{structkblib_1_1fakestd_1_1detail_1_1nat}{kblib\+::fakestd\+::detail\+::nat} \item struct \hyperlink{structkblib_1_1fakestd_1_1detail_1_1two}{kblib\+::fakestd\+::detail\+::two} \item struct \hyperlink{structkblib_1_1fakestd_1_1detail_1_1is__referenceable__impl}{kblib\+::fakestd\+::detail\+::is\+\_\+referenceable\+\_\+impl} \item struct \hyperlink{structkblib_1_1fakestd_1_1detail_1_1is__referenceable}{kblib\+::fakestd\+::detail\+::is\+\_\+referenceable$<$ Tp $>$} \item struct \hyperlink{structkblib_1_1fakestd_1_1detail_1_1swappable__with}{kblib\+::fakestd\+::detail\+::swappable\+\_\+with$<$ Tp, Up, Not\+Void $>$} \item struct \hyperlink{structkblib_1_1fakestd_1_1detail_1_1swappable__with_3_01_tp_00_01_up_00_01false_01_4}{kblib\+::fakestd\+::detail\+::swappable\+\_\+with$<$ Tp, Up, false $>$} \item struct \hyperlink{structkblib_1_1fakestd_1_1detail_1_1nothrow__swappable__with}{kblib\+::fakestd\+::detail\+::nothrow\+\_\+swappable\+\_\+with$<$ Tp, Up, Swappable $>$} \item struct \hyperlink{structkblib_1_1fakestd_1_1detail_1_1nothrow__swappable__with_3_01_tp_00_01_up_00_01false_01_4}{kblib\+::fakestd\+::detail\+::nothrow\+\_\+swappable\+\_\+with$<$ Tp, Up, false $>$} \item struct \hyperlink{structkblib_1_1fakestd_1_1is__swappable}{kblib\+::fakestd\+::is\+\_\+swappable$<$ Tp $>$} \item struct \hyperlink{structkblib_1_1fakestd_1_1is__nothrow__swappable}{kblib\+::fakestd\+::is\+\_\+nothrow\+\_\+swappable$<$ Tp $>$} \item struct \hyperlink{structkblib_1_1fakestd_1_1detail_1_1not__fn__t}{kblib\+::fakestd\+::detail\+::not\+\_\+fn\+\_\+t$<$ F $>$} \item struct \hyperlink{structkblib_1_1metafunction__success}{kblib\+::metafunction\+\_\+success$<$ T, typename $>$} \item struct \hyperlink{structkblib_1_1metafunction__success_3_01_t_00_01fakestd_1_1void__t_3_01typename_01_t_1_1type_01_4_01_4}{kblib\+::metafunction\+\_\+success$<$ T, fakestd\+::void\+\_\+t$<$ typename T\+::type $>$ $>$} \item struct \hyperlink{structkblib_1_1is__callable}{kblib\+::is\+\_\+callable$<$ T $>$} \item struct \hyperlink{structkblib_1_1return__assert}{kblib\+::return\+\_\+assert$<$ V, T $>$} \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 S\+F\+I\+N\+AE. \end{DoxyCompactList}\item struct \hyperlink{structkblib_1_1return__assert_3_01true_00_01_t_01_4}{kblib\+::return\+\_\+assert$<$ true, T $>$} \item struct \hyperlink{structkblib_1_1copy__const}{kblib\+::copy\+\_\+const$<$ C, T, bool $>$} \item struct \hyperlink{structkblib_1_1copy__const_3_01_c_00_01_t_00_01true_01_4}{kblib\+::copy\+\_\+const$<$ C, T, true $>$} \item struct \hyperlink{structkblib_1_1value__detected}{kblib\+::value\+\_\+detected$<$ T, typename $>$} \item struct \hyperlink{structkblib_1_1value__detected_3_01_t_00_01fakestd_1_1void__t_3_01typename_01_t_1_1value__type_01_4_01_4}{kblib\+::value\+\_\+detected$<$ T, fakestd\+::void\+\_\+t$<$ typename T\+::value\+\_\+type $>$ $>$} \item struct \hyperlink{structkblib_1_1key__detected}{kblib\+::key\+\_\+detected$<$ T, typename $>$} \item struct \hyperlink{structkblib_1_1key__detected_3_01_t_00_01fakestd_1_1void__t_3_01typename_01_t_1_1key__type_01_4_01_4}{kblib\+::key\+\_\+detected$<$ T, fakestd\+::void\+\_\+t$<$ typename T\+::key\+\_\+type $>$ $>$} \item struct \hyperlink{structkblib_1_1mapped__detected}{kblib\+::mapped\+\_\+detected$<$ T, typename $>$} \item struct \hyperlink{structkblib_1_1mapped__detected_3_01_t_00_01fakestd_1_1void__t_3_01typename_01_t_1_1mapped__type_01_4_01_4}{kblib\+::mapped\+\_\+detected$<$ T, fakestd\+::void\+\_\+t$<$ typename T\+::mapped\+\_\+type $>$ $>$} \item struct \hyperlink{structkblib_1_1value__type__linear}{kblib\+::value\+\_\+type\+\_\+linear$<$ Container, bool, T $>$} \item struct \hyperlink{structkblib_1_1value__type__linear_3_01_container_00_01false_00_01typename_01_container_1_1value__type_01_4}{kblib\+::value\+\_\+type\+\_\+linear$<$ Container, false, typename Container\+::value\+\_\+type $>$} \item struct \hyperlink{structkblib_1_1key__type__setlike}{kblib\+::key\+\_\+type\+\_\+setlike$<$ Container, bool, bool $>$} \item struct \hyperlink{structkblib_1_1key__type__setlike_3_01_container_00_01true_00_01false_01_4}{kblib\+::key\+\_\+type\+\_\+setlike$<$ Container, true, false $>$} \item class \hyperlink{classkblib_1_1cond__ptr}{kblib\+::cond\+\_\+ptr$<$ T $>$} \item struct \hyperlink{structkblib_1_1detail_1_1pointer}{kblib\+::detail\+::pointer$<$ D, T, typename $>$} \item struct \hyperlink{structkblib_1_1detail_1_1pointer_3_01_d_00_01_t_00_01fakestd_1_1void__t_3_01typename_01_d_1_1pointer_01_4_01_4}{kblib\+::detail\+::pointer$<$ D, T, fakestd\+::void\+\_\+t$<$ typename D\+::pointer $>$ $>$} \item class \hyperlink{classkblib_1_1heap__value}{kblib\+::heap\+\_\+value$<$ T $>$} \end{DoxyCompactItemize} \subsection*{Namespaces} \begin{DoxyCompactItemize} \item \hyperlink{namespacekblib}{kblib} \item \hyperlink{namespacekblib_1_1fakestd}{kblib\+::fakestd} \item \hyperlink{namespacekblib_1_1fakestd_1_1detail}{kblib\+::fakestd\+::detail} \item \hyperlink{namespacekblib_1_1detail}{kblib\+::detail} \end{DoxyCompactItemize} \subsection*{Macros} \begin{DoxyCompactItemize} \item \#define \hyperlink{kblib__fakestd_8h_a1bd1bd94076a0a71cc107c28805209fd}{K\+B\+L\+I\+B\+\_\+\+F\+A\+K\+E\+S\+TD}~(\+\_\+\+\_\+cplusplus $<$ 201703\+L) \item \#define \hyperlink{kblib__fakestd_8h_a7f62d0731631a0e7675f45924b7f5ea0}{K\+B\+L\+I\+B\+\_\+\+N\+O\+D\+I\+S\+C\+A\+RD} \end{DoxyCompactItemize} \subsection*{Typedefs} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename F , typename... Arg\+Types$>$ }\\using \hyperlink{namespacekblib_1_1fakestd_a2641177fb1c17f887061308f2b8b6cae}{kblib\+::fakestd\+::invoke\+\_\+result\+\_\+t} = typename invoke\+\_\+result$<$ F, Arg\+Types... $>$\+::type \item {\footnotesize template$<$typename... Ts$>$ }\\using \hyperlink{namespacekblib_1_1fakestd_a2df414d5a1a1f59c8f33520890755f84}{kblib\+::fakestd\+::void\+\_\+t} = typename make\+\_\+void$<$ Ts... $>$\+::type \item {\footnotesize template$<$bool V, typename T $>$ }\\using \hyperlink{namespacekblib_acdb4473ef9196a18a0e37e05171729f0}{kblib\+::return\+\_\+assert\+\_\+t} = typename return\+\_\+assert$<$ V, T $>$\+::type \item {\footnotesize template$<$typename C , typename V $>$ }\\using \hyperlink{namespacekblib_af973fdd9c2dddf6db3744ae83902fc72}{kblib\+::copy\+\_\+const\+\_\+t} = typename copy\+\_\+const$<$ C, V $>$\+::type \item {\footnotesize template$<$typename Container $>$ }\\using \hyperlink{namespacekblib_ac04bc7261d579d570a3847df654bc209}{kblib\+::value\+\_\+type\+\_\+linear\+\_\+t} = typename value\+\_\+type\+\_\+linear$<$ Container $>$\+::type \item {\footnotesize template$<$typename Container $>$ }\\using \hyperlink{namespacekblib_a08c333aaa30dec55fb9d3e7d616093bd}{kblib\+::key\+\_\+type\+\_\+setlike\+\_\+t} = typename key\+\_\+type\+\_\+setlike$<$ Container $>$\+::type \end{DoxyCompactItemize} \subsection*{Functions} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename Fn , typename... Args, std\+::enable\+\_\+if\+\_\+t$<$ std\+::is\+\_\+member\+\_\+pointer$<$ std\+::decay\+\_\+t$<$ Fn $>$$>$\{\}, int $>$ = 0$>$ }\\decltype(auto) constexpr \hyperlink{namespacekblib_1_1fakestd_a9e6ceb518296ec5f645e57249ddd3b37}{kblib\+::fakestd\+::invoke} (Fn \&\&f, Args \&\&... args) noexcept(noexcept(std\+::mem\+\_\+fn(f)(std\+::forward$<$ Args $>$(args)...))) \item {\footnotesize template$<$typename F $>$ }\\detail\+::not\+\_\+fn\+\_\+t$<$ F $>$ \hyperlink{namespacekblib_1_1fakestd_a56d2d0b9f90a58278bb94a4e79cf61d3}{kblib\+::fakestd\+::not\+\_\+fn} (F \&\&f) \item {\footnotesize template$<$typename T $>$ }\\std\+::unique\+\_\+ptr$<$ T $>$ \hyperlink{namespacekblib_aeeb322dea3f4d731ef86ac6e6763780e}{kblib\+::to\+\_\+unique} (T $\ast$p) \item {\footnotesize template$<$typename T , typename D $>$ }\\std\+::unique\+\_\+ptr$<$ T, D $>$ \hyperlink{namespacekblib_a250e3b21411ba050322bdeb3736ff3de}{kblib\+::to\+\_\+unique} (T $\ast$p, D \&\&d) \item {\footnotesize template$<$typename I $>$ }\\constexpr std\+::make\+\_\+unsigned\+\_\+t$<$ I $>$ \hyperlink{namespacekblib_aaa78700fd100b004308e4c81d3929e12}{kblib\+::to\+\_\+unsigned} (I x) \item {\footnotesize template$<$typename I $>$ }\\constexpr std\+::make\+\_\+signed\+\_\+t$<$ I $>$ \hyperlink{namespacekblib_ad6408f6a5c3527f20bb0f9b1e88b0965}{kblib\+::to\+\_\+signed} (I x) \item {\footnotesize template$<$typename A , typename F $>$ }\\\hyperlink{kblib__fakestd_8h_a7f62d0731631a0e7675f45924b7f5ea0}{K\+B\+L\+I\+B\+\_\+\+N\+O\+D\+I\+S\+C\+A\+RD} constexpr std\+::enable\+\_\+if\+\_\+t$<$ std\+::is\+\_\+integral$<$ A $>$\+::value \&\&std\+::is\+\_\+integral$<$ F $>$\+::value \&\&std\+::is\+\_\+signed$<$ A $>$\+::value, std\+::make\+\_\+signed\+\_\+t$<$ F $>$ $>$ \hyperlink{namespacekblib_afecd4d6ba5d36be1035321b84e24d5fe}{kblib\+::signed\+\_\+cast} (F x) \item {\footnotesize template$<$typename A , typename F $>$ }\\\hyperlink{kblib__fakestd_8h_a7f62d0731631a0e7675f45924b7f5ea0}{K\+B\+L\+I\+B\+\_\+\+N\+O\+D\+I\+S\+C\+A\+RD} constexpr std\+::enable\+\_\+if\+\_\+t$<$ std\+::is\+\_\+integral$<$ A $>$\+::value \&\&std\+::is\+\_\+integral$<$ F $>$\+::value \&\&std\+::is\+\_\+unsigned$<$ A $>$\+::value, std\+::make\+\_\+unsigned\+\_\+t$<$ F $>$ $>$ \hyperlink{namespacekblib_a7f3c9a8dd8cecbc969bb639afd8bfd30}{kblib\+::signed\+\_\+cast} (F x) \item {\footnotesize template$<$class Input\+It1 , class Input\+It2 $>$ }\\constexpr bool \hyperlink{namespacekblib_a0e1dcbe3572c2a4861cd5fac8ae98140}{kblib\+::equal} (Input\+It1 first1, Input\+It1 last1, Input\+It2 first2) \item {\footnotesize template$<$class Input\+It1 , class Input\+It2 $>$ }\\\hyperlink{kblib__fakestd_8h_a7f62d0731631a0e7675f45924b7f5ea0}{K\+B\+L\+I\+B\+\_\+\+N\+O\+D\+I\+S\+C\+A\+RD} constexpr bool \hyperlink{namespacekblib_a3c2d1b1b3fe51501a8142fac212f2523}{kblib\+::lexicographical\+\_\+compare} (Input\+It1 first1, Input\+It1 last1, Input\+It2 first2, Input\+It2 last2) \item {\footnotesize template$<$class Input\+It , class Size , class Output\+It $>$ }\\constexpr Output\+It \hyperlink{namespacekblib_aa3f735ff604ebcd65225201fd11bc0dd}{kblib\+::copy\+\_\+n} (Input\+It first, Size count, Output\+It result) \end{DoxyCompactItemize} \subsection*{Variables} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename T $>$ }\\constexpr bool \hyperlink{namespacekblib_a927171c113d5559da2f0f2245ed5e9da}{kblib\+::value\+\_\+detected\+\_\+v} = value\+\_\+detected$<$T$>$\+::value \item {\footnotesize template$<$typename T $>$ }\\constexpr bool \hyperlink{namespacekblib_aadf3de1384a8cce5b631b28711b4a47c}{kblib\+::key\+\_\+detected\+\_\+v} = key\+\_\+detected$<$T$>$\+::value \item {\footnotesize template$<$typename T $>$ }\\constexpr bool \hyperlink{namespacekblib_a13ab67cd7841362d9e8da411066ca974}{kblib\+::mapped\+\_\+detected\+\_\+v} = mapped\+\_\+detected$<$T$>$\+::value \end{DoxyCompactItemize} \subsection{Macro Definition Documentation} \mbox{\Hypertarget{kblib__fakestd_8h_a1bd1bd94076a0a71cc107c28805209fd}\label{kblib__fakestd_8h_a1bd1bd94076a0a71cc107c28805209fd}} \index{kblib\+\_\+fakestd.\+h@{kblib\+\_\+fakestd.\+h}!K\+B\+L\+I\+B\+\_\+\+F\+A\+K\+E\+S\+TD@{K\+B\+L\+I\+B\+\_\+\+F\+A\+K\+E\+S\+TD}} \index{K\+B\+L\+I\+B\+\_\+\+F\+A\+K\+E\+S\+TD@{K\+B\+L\+I\+B\+\_\+\+F\+A\+K\+E\+S\+TD}!kblib\+\_\+fakestd.\+h@{kblib\+\_\+fakestd.\+h}} \subsubsection{\texorpdfstring{K\+B\+L\+I\+B\+\_\+\+F\+A\+K\+E\+S\+TD}{KBLIB\_FAKESTD}} {\footnotesize\ttfamily \#define K\+B\+L\+I\+B\+\_\+\+F\+A\+K\+E\+S\+TD~(\+\_\+\+\_\+cplusplus $<$ 201703\+L)} Definition at line 14 of file kblib\+\_\+fakestd.\+h. \mbox{\Hypertarget{kblib__fakestd_8h_a7f62d0731631a0e7675f45924b7f5ea0}\label{kblib__fakestd_8h_a7f62d0731631a0e7675f45924b7f5ea0}} \index{kblib\+\_\+fakestd.\+h@{kblib\+\_\+fakestd.\+h}!K\+B\+L\+I\+B\+\_\+\+N\+O\+D\+I\+S\+C\+A\+RD@{K\+B\+L\+I\+B\+\_\+\+N\+O\+D\+I\+S\+C\+A\+RD}} \index{K\+B\+L\+I\+B\+\_\+\+N\+O\+D\+I\+S\+C\+A\+RD@{K\+B\+L\+I\+B\+\_\+\+N\+O\+D\+I\+S\+C\+A\+RD}!kblib\+\_\+fakestd.\+h@{kblib\+\_\+fakestd.\+h}} \subsubsection{\texorpdfstring{K\+B\+L\+I\+B\+\_\+\+N\+O\+D\+I\+S\+C\+A\+RD}{KBLIB\_NODISCARD}} {\footnotesize\ttfamily \#define K\+B\+L\+I\+B\+\_\+\+N\+O\+D\+I\+S\+C\+A\+RD} Definition at line 22 of file kblib\+\_\+fakestd.\+h.