\hypertarget{namespacekblib_1_1detail__poly}{}\doxysection{kblib\+::detail\+\_\+poly Namespace Reference} \label{namespacekblib_1_1detail__poly}\index{kblib::detail\_poly@{kblib::detail\_poly}} Implementation details for \mbox{\hyperlink{classkblib_1_1poly__obj}{poly\+\_\+obj}}. \doxysubsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{structkblib_1_1detail__poly_1_1construct__conditional}{construct\+\_\+conditional}} \item struct \mbox{\hyperlink{structkblib_1_1detail__poly_1_1construct__conditional_3_01construct__type_1_1both_01_4}{construct\+\_\+conditional$<$ construct\+\_\+type\+::both $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__poly_1_1construct__conditional_3_01construct__type_1_1both__throw_01_4}{construct\+\_\+conditional$<$ construct\+\_\+type\+::both\+\_\+throw $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__poly_1_1construct__conditional_3_01construct__type_1_1copy__only_01_4}{construct\+\_\+conditional$<$ construct\+\_\+type\+::copy\+\_\+only $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__poly_1_1construct__conditional_3_01construct__type_1_1move_01_4}{construct\+\_\+conditional$<$ construct\+\_\+type\+::move $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__poly_1_1construct__conditional_3_01construct__type_1_1none_01_4}{construct\+\_\+conditional$<$ construct\+\_\+type\+::none $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__poly_1_1construct__conditional_3_01construct__type_1_1throw__move_01_4}{construct\+\_\+conditional$<$ construct\+\_\+type\+::throw\+\_\+move $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__poly_1_1erased__construct}{erased\+\_\+construct}} \item struct \mbox{\hyperlink{structkblib_1_1detail__poly_1_1erased__hash__t}{erased\+\_\+hash\+\_\+t}} \item struct \mbox{\hyperlink{structkblib_1_1detail__poly_1_1erased__hash__t_3_01_t_00_01void__t_3_01fakestd_1_1invoke__resulte0f114b0d28ead89999e6027fb1e55a8}{erased\+\_\+hash\+\_\+t$<$ T, void\+\_\+t$<$ fakestd\+::invoke\+\_\+result\+\_\+t$<$ std\+::hash$<$ T $>$, T $>$ $>$ $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__poly_1_1extract__derived__size}{extract\+\_\+derived\+\_\+size}} \item struct \mbox{\hyperlink{structkblib_1_1detail__poly_1_1extract__derived__size_3_01_t_00_01void__if__t_3_07_t_1_1max__der728deceb0d3c42387b62a9cae41666e5}{extract\+\_\+derived\+\_\+size$<$ T, void\+\_\+if\+\_\+t$<$(\+T\+::max\+\_\+derived\+\_\+size $>$ sizeof(\+T))$>$ $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__poly_1_1kblib__erased__hash__t}{kblib\+\_\+erased\+\_\+hash\+\_\+t}} \item struct \mbox{\hyperlink{structkblib_1_1detail__poly_1_1kblib__erased__hash__t_3_01_t_00_01void__t_3_01fakestd_1_1invoke_55adc4f6ef833cf6a377ac3d9da5a8e3}{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{namespacekblib_1_1detail__poly_aa9dd6842a655495099bc36a29c947f3c}{copyable}} (\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}} type) noexcept -\/$>$ bool \item constexpr auto \mbox{\hyperlink{namespacekblib_1_1detail__poly_aa3f1e557e58498f440cfb3a47edc8e69}{movable}} (\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}} type) noexcept -\/$>$ bool \item constexpr auto \mbox{\hyperlink{namespacekblib_1_1detail__poly_ab9643d14f3057466208cd3c874114552}{nothrow\+\_\+movable}} (\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}} type) noexcept -\/$>$ bool \item constexpr auto \mbox{\hyperlink{namespacekblib_1_1detail__poly_a2b36368b4dc8ff5498b7ae45839e47c5}{make\+\_\+ctype}} (bool \mbox{\hyperlink{namespacekblib_1_1detail__poly_aa9dd6842a655495099bc36a29c947f3c}{copyable}}, bool \mbox{\hyperlink{namespacekblib_1_1detail__poly_aa3f1e557e58498f440cfb3a47edc8e69}{movable}}, bool \mbox{\hyperlink{namespacekblib_1_1detail__poly_ab9643d14f3057466208cd3c874114552}{nothrow\+\_\+movable}}) -\/$>$ \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}} \item {\footnotesize template$<$typename T , typename Traits $>$ }\\auto \mbox{\hyperlink{namespacekblib_1_1detail__poly_ae72ac6a24753c923d2db4b7559718bec}{make\+\_\+ops\+\_\+t}} () noexcept -\/$>$ \mbox{\hyperlink{structkblib_1_1detail__poly_1_1erased__construct}{erased\+\_\+construct}}$<$ Traits $>$ \end{DoxyCompactItemize} \doxysubsection*{Variables} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename T $>$ }\\constexpr \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}} \mbox{\hyperlink{namespacekblib_1_1detail__poly_a61756f447c8151e8a8497341f0109885}{construct\+\_\+traits}} \end{DoxyCompactItemize} \doxysubsection{Detailed Description} Implementation details for \mbox{\hyperlink{classkblib_1_1poly__obj}{poly\+\_\+obj}}. \doxysubsection{Function Documentation} \mbox{\Hypertarget{namespacekblib_1_1detail__poly_aa9dd6842a655495099bc36a29c947f3c}\label{namespacekblib_1_1detail__poly_aa9dd6842a655495099bc36a29c947f3c}} \index{kblib::detail\_poly@{kblib::detail\_poly}!copyable@{copyable}} \index{copyable@{copyable}!kblib::detail\_poly@{kblib::detail\_poly}} \doxysubsubsection{\texorpdfstring{copyable()}{copyable()}} {\footnotesize\ttfamily constexpr auto kblib\+::detail\+\_\+poly\+::copyable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{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{namespacekblib_1_1detail__poly_a2b36368b4dc8ff5498b7ae45839e47c5}\label{namespacekblib_1_1detail__poly_a2b36368b4dc8ff5498b7ae45839e47c5}} \index{kblib::detail\_poly@{kblib::detail\_poly}!make\_ctype@{make\_ctype}} \index{make\_ctype@{make\_ctype}!kblib::detail\_poly@{kblib::detail\_poly}} \doxysubsubsection{\texorpdfstring{make\_ctype()}{make\_ctype()}} {\footnotesize\ttfamily constexpr auto kblib\+::detail\+\_\+poly\+::make\+\_\+ctype (\begin{DoxyParamCaption}\item[{bool}]{copyable, }\item[{bool}]{movable, }\item[{bool}]{nothrow\+\_\+movable }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{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{namespacekblib_1_1detail__poly_ae72ac6a24753c923d2db4b7559718bec}\label{namespacekblib_1_1detail__poly_ae72ac6a24753c923d2db4b7559718bec}} \index{kblib::detail\_poly@{kblib::detail\_poly}!make\_ops\_t@{make\_ops\_t}} \index{make\_ops\_t@{make\_ops\_t}!kblib::detail\_poly@{kblib::detail\_poly}} \doxysubsubsection{\texorpdfstring{make\_ops\_t()}{make\_ops\_t()}} {\footnotesize\ttfamily template$<$typename T , typename Traits $>$ \\ auto kblib\+::detail\+\_\+poly\+::make\+\_\+ops\+\_\+t (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{structkblib_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{namespacekblib_1_1detail__poly_aa3f1e557e58498f440cfb3a47edc8e69}\label{namespacekblib_1_1detail__poly_aa3f1e557e58498f440cfb3a47edc8e69}} \index{kblib::detail\_poly@{kblib::detail\_poly}!movable@{movable}} \index{movable@{movable}!kblib::detail\_poly@{kblib::detail\_poly}} \doxysubsubsection{\texorpdfstring{movable()}{movable()}} {\footnotesize\ttfamily constexpr auto kblib\+::detail\+\_\+poly\+::movable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{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{namespacekblib_1_1detail__poly_ab9643d14f3057466208cd3c874114552}\label{namespacekblib_1_1detail__poly_ab9643d14f3057466208cd3c874114552}} \index{kblib::detail\_poly@{kblib::detail\_poly}!nothrow\_movable@{nothrow\_movable}} \index{nothrow\_movable@{nothrow\_movable}!kblib::detail\_poly@{kblib::detail\_poly}} \doxysubsubsection{\texorpdfstring{nothrow\_movable()}{nothrow\_movable()}} {\footnotesize\ttfamily constexpr auto kblib\+::detail\+\_\+poly\+::nothrow\+\_\+movable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{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{namespacekblib_1_1detail__poly_a61756f447c8151e8a8497341f0109885}\label{namespacekblib_1_1detail__poly_a61756f447c8151e8a8497341f0109885}} \index{kblib::detail\_poly@{kblib::detail\_poly}!construct\_traits@{construct\_traits}} \index{construct\_traits@{construct\_traits}!kblib::detail\_poly@{kblib::detail\_poly}} \doxysubsubsection{\texorpdfstring{construct\_traits}{construct\_traits}} {\footnotesize\ttfamily template$<$typename T $>$ \\ constexpr \mbox{\hyperlink{namespacekblib_a2cc6d0e618d41f45deaaa5c6c357ed7a}{construct\+\_\+type}} kblib\+::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}}.