\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::value} \DoxyCodeLine{ | construct\_type::move* std::is\_move\_constructible::value} \DoxyCodeLine{ | construct\_type::throw\_move*(} \DoxyCodeLine{ std::is\_move\_constructible::value} \DoxyCodeLine{ \& not std::is\_nothrow\_move\_constructible::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}}.