\hypertarget{namespace_k_b_l_i_b___n_s_1_1detail__poly}{}\doxysection{KBLIB\+\_\+\+NS\+::detail\+\_\+poly Namespace Reference}
\label{namespace_k_b_l_i_b___n_s_1_1detail__poly}\index{KBLIB\_NS::detail\_poly@{KBLIB\_NS::detail\_poly}}
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__poly_1_1construct__conditional}{construct\+\_\+conditional}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__poly_1_1construct__conditional_3_01construct__type_1_1both_01_4}{construct\+\_\+conditional$<$ construct\+\_\+type\+::both $>$}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__poly_1_1construct__conditional_3_01construct__type_1_1both__throw_01_4}{construct\+\_\+conditional$<$ construct\+\_\+type\+::both\+\_\+throw $>$}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__poly_1_1construct__conditional_3_01construct__type_1_1copy__only_01_4}{construct\+\_\+conditional$<$ construct\+\_\+type\+::copy\+\_\+only $>$}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__poly_1_1construct__conditional_3_01construct__type_1_1move_01_4}{construct\+\_\+conditional$<$ construct\+\_\+type\+::move $>$}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__poly_1_1construct__conditional_3_01construct__type_1_1none_01_4}{construct\+\_\+conditional$<$ construct\+\_\+type\+::none $>$}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__poly_1_1construct__conditional_3_01construct__type_1_1throw__move_01_4}{construct\+\_\+conditional$<$ construct\+\_\+type\+::throw\+\_\+move $>$}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__poly_1_1erased__construct}{erased\+\_\+construct}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__poly_1_1erased__hash__t}{erased\+\_\+hash\+\_\+t}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__poly_1_1erased__hash__t_3_01_t_00_01void__t_3_01fakestd_1_1invf7023bfab0bb6ab21388b575fd1135bb}{erased\+\_\+hash\+\_\+t$<$ T, void\+\_\+t$<$ fakestd\+::invoke\+\_\+result\+\_\+t$<$ std\+::hash$<$ T $>$, T $>$ $>$ $>$}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__poly_1_1extract__derived__size}{extract\+\_\+derived\+\_\+size}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__poly_1_1extract__derived__size_3_01_t_00_01void__if__t_3_07_t_5d8c3a2a108eee0d101cde347723d1aa}{extract\+\_\+derived\+\_\+size$<$ T, void\+\_\+if\+\_\+t$<$(\+T\+::max\+\_\+derived\+\_\+size $>$ sizeof(\+T))$>$ $>$}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__poly_1_1kblib__erased__hash__t}{kblib\+\_\+erased\+\_\+hash\+\_\+t}}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__poly_1_1kblib__erased__hash__t_3_01_t_00_01void__t_3_01fakestdb7d3da88b18c4aa67ec3aefacc0ffded}{kblib\+\_\+erased\+\_\+hash\+\_\+t$<$ T, void\+\_\+t$<$ fakestd\+::invoke\+\_\+result\+\_\+t$<$ std\+::hash$<$ T $>$, T $>$ $>$ $>$}}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail__poly_a59d5434465c8b56b32302fd9d05b3cfb}{copyable}} (\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_ab80deb5b155636cc83afb4be1f83ae8e}{construct\+\_\+type}} type) noexcept -\/$>$ bool
\item 
constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail__poly_a884b9b108580252d14283886d91ea7c1}{movable}} (\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_ab80deb5b155636cc83afb4be1f83ae8e}{construct\+\_\+type}} type) noexcept -\/$>$ bool
\item 
constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail__poly_ac437bb48dd05a52022ee1c86f65a744c}{nothrow\+\_\+movable}} (\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_ab80deb5b155636cc83afb4be1f83ae8e}{construct\+\_\+type}} type) noexcept -\/$>$ bool
\item 
constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail__poly_ad82e1e894495e74ae43c3b257bbb6bdd}{make\+\_\+ctype}} (bool \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail__poly_a59d5434465c8b56b32302fd9d05b3cfb}{copyable}}, bool \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail__poly_a884b9b108580252d14283886d91ea7c1}{movable}}, bool \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail__poly_ac437bb48dd05a52022ee1c86f65a744c}{nothrow\+\_\+movable}}) -\/$>$ \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_ab80deb5b155636cc83afb4be1f83ae8e}{construct\+\_\+type}}
\item 
{\footnotesize template$<$typename T , typename Traits $>$ }\\auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail__poly_a74e8fb79e752de585daf223a1fac9f16}{make\+\_\+ops\+\_\+t}} () noexcept -\/$>$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__poly_1_1erased__construct}{erased\+\_\+construct}}$<$ Traits $>$
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename T $>$ }\\constexpr \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_ab80deb5b155636cc83afb4be1f83ae8e}{construct\+\_\+type}} \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail__poly_aec8e056fa12747c10dc335abb128dcd0}{construct\+\_\+traits}}
\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail__poly_a59d5434465c8b56b32302fd9d05b3cfb}\label{namespace_k_b_l_i_b___n_s_1_1detail__poly_a59d5434465c8b56b32302fd9d05b3cfb}} 
\index{KBLIB\_NS::detail\_poly@{KBLIB\_NS::detail\_poly}!copyable@{copyable}}
\index{copyable@{copyable}!KBLIB\_NS::detail\_poly@{KBLIB\_NS::detail\_poly}}
\doxysubsubsection{\texorpdfstring{copyable()}{copyable()}}
{\footnotesize\ttfamily constexpr auto KBLIB\+\_\+\+NS\+::detail\+\_\+poly\+::copyable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_ab80deb5b155636cc83afb4be1f83ae8e}{construct\+\_\+type}}}]{type }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{poly__obj_8h_source_l00072}{72}} of file \mbox{\hyperlink{poly__obj_8h_source}{poly\+\_\+obj.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail__poly_ad82e1e894495e74ae43c3b257bbb6bdd}\label{namespace_k_b_l_i_b___n_s_1_1detail__poly_ad82e1e894495e74ae43c3b257bbb6bdd}} 
\index{KBLIB\_NS::detail\_poly@{KBLIB\_NS::detail\_poly}!make\_ctype@{make\_ctype}}
\index{make\_ctype@{make\_ctype}!KBLIB\_NS::detail\_poly@{KBLIB\_NS::detail\_poly}}
\doxysubsubsection{\texorpdfstring{make\_ctype()}{make\_ctype()}}
{\footnotesize\ttfamily constexpr auto KBLIB\+\_\+\+NS\+::detail\+\_\+poly\+::make\+\_\+ctype (\begin{DoxyParamCaption}\item[{bool}]{copyable,  }\item[{bool}]{movable,  }\item[{bool}]{nothrow\+\_\+movable }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_ab80deb5b155636cc83afb4be1f83ae8e}{construct\+\_\+type}} \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{poly__obj_8h_source_l00086}{86}} of file \mbox{\hyperlink{poly__obj_8h_source}{poly\+\_\+obj.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail__poly_a74e8fb79e752de585daf223a1fac9f16}\label{namespace_k_b_l_i_b___n_s_1_1detail__poly_a74e8fb79e752de585daf223a1fac9f16}} 
\index{KBLIB\_NS::detail\_poly@{KBLIB\_NS::detail\_poly}!make\_ops\_t@{make\_ops\_t}}
\index{make\_ops\_t@{make\_ops\_t}!KBLIB\_NS::detail\_poly@{KBLIB\_NS::detail\_poly}}
\doxysubsubsection{\texorpdfstring{make\_ops\_t()}{make\_ops\_t()}}
{\footnotesize\ttfamily template$<$typename T , typename Traits $>$ \\
auto KBLIB\+\_\+\+NS\+::detail\+\_\+poly\+::make\+\_\+ops\+\_\+t (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__poly_1_1erased__construct}{erased\+\_\+construct}}$<$Traits$>$ \hspace{0.3cm}{\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{poly__obj_8h_source_l00220}{220}} of file \mbox{\hyperlink{poly__obj_8h_source}{poly\+\_\+obj.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail__poly_a884b9b108580252d14283886d91ea7c1}\label{namespace_k_b_l_i_b___n_s_1_1detail__poly_a884b9b108580252d14283886d91ea7c1}} 
\index{KBLIB\_NS::detail\_poly@{KBLIB\_NS::detail\_poly}!movable@{movable}}
\index{movable@{movable}!KBLIB\_NS::detail\_poly@{KBLIB\_NS::detail\_poly}}
\doxysubsubsection{\texorpdfstring{movable()}{movable()}}
{\footnotesize\ttfamily constexpr auto KBLIB\+\_\+\+NS\+::detail\+\_\+poly\+::movable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_ab80deb5b155636cc83afb4be1f83ae8e}{construct\+\_\+type}}}]{type }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{poly__obj_8h_source_l00076}{76}} of file \mbox{\hyperlink{poly__obj_8h_source}{poly\+\_\+obj.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail__poly_ac437bb48dd05a52022ee1c86f65a744c}\label{namespace_k_b_l_i_b___n_s_1_1detail__poly_ac437bb48dd05a52022ee1c86f65a744c}} 
\index{KBLIB\_NS::detail\_poly@{KBLIB\_NS::detail\_poly}!nothrow\_movable@{nothrow\_movable}}
\index{nothrow\_movable@{nothrow\_movable}!KBLIB\_NS::detail\_poly@{KBLIB\_NS::detail\_poly}}
\doxysubsubsection{\texorpdfstring{nothrow\_movable()}{nothrow\_movable()}}
{\footnotesize\ttfamily constexpr auto KBLIB\+\_\+\+NS\+::detail\+\_\+poly\+::nothrow\+\_\+movable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_ab80deb5b155636cc83afb4be1f83ae8e}{construct\+\_\+type}}}]{type }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{poly__obj_8h_source_l00080}{80}} of file \mbox{\hyperlink{poly__obj_8h_source}{poly\+\_\+obj.\+h}}.



\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail__poly_aec8e056fa12747c10dc335abb128dcd0}\label{namespace_k_b_l_i_b___n_s_1_1detail__poly_aec8e056fa12747c10dc335abb128dcd0}} 
\index{KBLIB\_NS::detail\_poly@{KBLIB\_NS::detail\_poly}!construct\_traits@{construct\_traits}}
\index{construct\_traits@{construct\_traits}!KBLIB\_NS::detail\_poly@{KBLIB\_NS::detail\_poly}}
\doxysubsubsection{\texorpdfstring{construct\_traits}{construct\_traits}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
constexpr \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_ab80deb5b155636cc83afb4be1f83ae8e}{construct\+\_\+type}} KBLIB\+\_\+\+NS\+::detail\+\_\+poly\+::construct\+\_\+traits\hspace{0.3cm}{\ttfamily [constexpr]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= construct\_type::copy\_only* std::is\_copy\_constructible<T>::value}
\DoxyCodeLine{         | construct\_type::move* std::is\_move\_constructible<T>::value}
\DoxyCodeLine{         | construct\_type::throw\_move*(}
\DoxyCodeLine{             std::is\_move\_constructible<T>::value}
\DoxyCodeLine{             \& not std::is\_nothrow\_move\_constructible<T>::value)}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{poly__obj_8h_source_l00176}{176}} of file \mbox{\hyperlink{poly__obj_8h_source}{poly\+\_\+obj.\+h}}.

