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

