\hypertarget{kblib__variant_8h}{}\section{kblib\+\_\+variant.\+h File Reference}
\label{kblib__variant_8h}\index{kblib\+\_\+variant.\+h@{kblib\+\_\+variant.\+h}}
{\ttfamily \#include \char`\"{}kblib\+\_\+convert.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}kblib\+\_\+logic.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}kblib\+\_\+simple.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}kblib\+\_\+tdecl.\+h\char`\"{}}\newline
{\ttfamily \#include $<$cstddef$>$}\newline
{\ttfamily \#include $<$new$>$}\newline
Include dependency graph for kblib\+\_\+variant.\+h\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{kblib__variant_8h__incl}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structkblib_1_1detail_1_1construct__conditional}{kblib\+::detail\+::construct\+\_\+conditional$<$ traits $>$}
\item 
struct \hyperlink{structkblib_1_1detail_1_1construct__conditional_3_01construct__type_1_1none_01_4}{kblib\+::detail\+::construct\+\_\+conditional$<$ construct\+\_\+type\+::none $>$}
\item 
struct \hyperlink{structkblib_1_1detail_1_1construct__conditional_3_01construct__type_1_1copy_01_4}{kblib\+::detail\+::construct\+\_\+conditional$<$ construct\+\_\+type\+::copy $>$}
\item 
struct \hyperlink{structkblib_1_1detail_1_1construct__conditional_3_01construct__type_1_1move_01_4}{kblib\+::detail\+::construct\+\_\+conditional$<$ construct\+\_\+type\+::move $>$}
\item 
struct \hyperlink{structkblib_1_1detail_1_1construct__conditional_3_01construct__type_1_1both_01_4}{kblib\+::detail\+::construct\+\_\+conditional$<$ construct\+\_\+type\+::both $>$}
\item 
struct \hyperlink{structkblib_1_1detail_1_1assign__conditional}{kblib\+::detail\+::assign\+\_\+conditional$<$ traits $>$}
\item 
struct \hyperlink{structkblib_1_1detail_1_1assign__conditional_3_01construct__type_1_1none_01_4}{kblib\+::detail\+::assign\+\_\+conditional$<$ construct\+\_\+type\+::none $>$}
\item 
struct \hyperlink{structkblib_1_1detail_1_1assign__conditional_3_01construct__type_1_1copy_01_4}{kblib\+::detail\+::assign\+\_\+conditional$<$ construct\+\_\+type\+::copy $>$}
\item 
struct \hyperlink{structkblib_1_1detail_1_1assign__conditional_3_01construct__type_1_1move_01_4}{kblib\+::detail\+::assign\+\_\+conditional$<$ construct\+\_\+type\+::move $>$}
\item 
struct \hyperlink{structkblib_1_1detail_1_1assign__conditional_3_01construct__type_1_1both_01_4}{kblib\+::detail\+::assign\+\_\+conditional$<$ construct\+\_\+type\+::both $>$}
\item 
struct \hyperlink{structkblib_1_1detail_1_1disable__conditional}{kblib\+::detail\+::disable\+\_\+conditional$<$ T $>$}
\item 
struct \hyperlink{structkblib_1_1detail_1_1erased__construct__helper}{kblib\+::detail\+::erased\+\_\+construct\+\_\+helper$<$ traits $>$}
\item 
struct \hyperlink{structkblib_1_1detail_1_1erased__construct__helper_3_01construct__type_1_1copy_01_4}{kblib\+::detail\+::erased\+\_\+construct\+\_\+helper$<$ construct\+\_\+type\+::copy $>$}
\item 
struct \hyperlink{structkblib_1_1detail_1_1erased__construct__helper_3_01construct__type_1_1move_01_4}{kblib\+::detail\+::erased\+\_\+construct\+\_\+helper$<$ construct\+\_\+type\+::move $>$}
\item 
struct \hyperlink{structkblib_1_1detail_1_1erased__construct__helper_3_01construct__type_1_1both_01_4}{kblib\+::detail\+::erased\+\_\+construct\+\_\+helper$<$ construct\+\_\+type\+::both $>$}
\item 
struct \hyperlink{structkblib_1_1detail_1_1erased__hash__t}{kblib\+::detail\+::erased\+\_\+hash\+\_\+t$<$ T, hash $>$}
\item 
struct \hyperlink{structkblib_1_1detail_1_1erased__hash__t_3_01_t_00_01std_1_1void__t_3_01std_1_1invoke__result__t2c64694d54964a1e2e006ae44743bff6}{kblib\+::detail\+::erased\+\_\+hash\+\_\+t$<$ T, std\+::void\+\_\+t$<$ std\+::invoke\+\_\+result\+\_\+t$<$ std\+::hash$<$ T $>$, T $>$ $>$ $>$}
\item 
struct \hyperlink{structkblib_1_1move__only__t}{kblib\+::move\+\_\+only\+\_\+t}
\begin{DoxyCompactList}\small\item\em A tag type for \hyperlink{classkblib_1_1poly__obj}{poly\+\_\+obj}, usable as a Traits type, which disables copying. \end{DoxyCompactList}\item 
struct \hyperlink{structkblib_1_1no__move__t}{kblib\+::no\+\_\+move\+\_\+t}
\begin{DoxyCompactList}\small\item\em A tag type for \hyperlink{classkblib_1_1poly__obj}{poly\+\_\+obj}, usable as a Traits type, which disables copying and moving. \end{DoxyCompactList}\item 
class \hyperlink{classkblib_1_1poly__obj}{kblib\+::poly\+\_\+obj$<$ Obj, Capacity, Traits $>$}
\begin{DoxyCompactList}\small\item\em Inline polymorphic object. Generally mimics the interfaces of std\+::optional and std\+::variant. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
 \hyperlink{namespacekblib}{kblib}
\item 
 \hyperlink{namespacekblib_1_1detail}{kblib\+::detail}
\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{namespacekblib_1_1detail_a6793826ce152f58b1ed1c2ae5f15df84}{kblib\+::detail\+::construct\+\_\+type} \{ \hyperlink{namespacekblib_1_1detail_a6793826ce152f58b1ed1c2ae5f15df84a334c4a4c42fdb79d7ebc3e73b517e6f8}{kblib\+::detail\+::construct\+\_\+type\+::none} = 0, 
\hyperlink{namespacekblib_1_1detail_a6793826ce152f58b1ed1c2ae5f15df84a12cba3ee81cf4a793796a51b6327c678}{kblib\+::detail\+::construct\+\_\+type\+::copy} = 1, 
\hyperlink{namespacekblib_1_1detail_a6793826ce152f58b1ed1c2ae5f15df84a3734a903022249b3010be1897042568e}{kblib\+::detail\+::construct\+\_\+type\+::move} = 2, 
\hyperlink{namespacekblib_1_1detail_a6793826ce152f58b1ed1c2ae5f15df84af6cb3e816496528d4187db53bc66567f}{kblib\+::detail\+::construct\+\_\+type\+::both} = 3
 \}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
constexpr construct\+\_\+type \hyperlink{namespacekblib_1_1detail_a94d3e54873c5480c8843eed2fe24c96f}{kblib\+::detail\+::operator$\vert$} (construct\+\_\+type l, construct\+\_\+type r)
\item 
constexpr construct\+\_\+type \hyperlink{namespacekblib_1_1detail_a77e1dea437f9fea13113bbf78557a58d}{kblib\+::detail\+::operator \&} (construct\+\_\+type l, construct\+\_\+type r)
\item 
constexpr construct\+\_\+type \hyperlink{namespacekblib_1_1detail_ae4074c9574aef08bdde67f199230ee97}{kblib\+::detail\+::operator$\ast$} (construct\+\_\+type l, bool r)
\item 
void \hyperlink{namespacekblib_1_1detail_a289fe9504323681ab95007fea7dc89f3}{kblib\+::detail\+::noop} (void $\ast$, void $\ast$)
\item 
void \hyperlink{namespacekblib_1_1detail_ad0dc439c1f3285d686115b1933aa877b}{kblib\+::detail\+::noop} (void $\ast$, const void $\ast$)
\item 
{\footnotesize template$<$typename T $>$ }\\void \hyperlink{namespacekblib_1_1detail_a6d167312fa1007e222d9b54b10bde669}{kblib\+::detail\+::default\+\_\+copy} (void $\ast$dest, const void $\ast$from)
\item 
{\footnotesize template$<$typename T $>$ }\\void \hyperlink{namespacekblib_1_1detail_afd3d51110e944a009d6f2d5083f694ed}{kblib\+::detail\+::default\+\_\+move} (void $\ast$dest, void $\ast$from)
\item 
{\footnotesize template$<$typename T , typename Traits , bool noop = false$>$ }\\erased\+\_\+construct\+\_\+helper$<$ construct\+\_\+traits$<$ Traits $>$ $>$ \hyperlink{namespacekblib_1_1detail_a58d8253a73ef413aa474040cd94ada20}{kblib\+::detail\+::make\+\_\+ops\+\_\+t} ()
\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr construct\+\_\+type \hyperlink{namespacekblib_1_1detail_a05c530861c70a93e6d98b38ce1e58592}{kblib\+::detail\+::construct\+\_\+traits}
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr construct\+\_\+type \hyperlink{namespacekblib_1_1detail_aee78c9f1fee880a104138f0b83574398}{kblib\+::detail\+::assign\+\_\+traits}
\end{DoxyCompactItemize}
