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