\hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj}{}\doxysection{KBLIB\+\_\+\+NS\+::poly\+\_\+obj\texorpdfstring{$<$}{<} Obj, Capacity, Traits \texorpdfstring{$>$}{>} Class Template Reference}
\label{class_k_b_l_i_b___n_s_1_1poly__obj}\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}


Inline polymorphic object. Generally mimics the interfaces of std\+::optional and std\+::variant.  




{\ttfamily \#include $<$kblib/poly\+\_\+obj.\+h$>$}



Inheritance diagram for KBLIB\+\_\+\+NS\+::poly\+\_\+obj\texorpdfstring{$<$}{<} Obj, Capacity, Traits \texorpdfstring{$>$}{>}\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_k_b_l_i_b___n_s_1_1poly__obj__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for KBLIB\+\_\+\+NS\+::poly\+\_\+obj\texorpdfstring{$<$}{<} Obj, Capacity, Traits \texorpdfstring{$>$}{>}\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_k_b_l_i_b___n_s_1_1poly__obj__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a46068bcd9de6076840cc117e5e56f5aa}{base\+\_\+type}} = Obj
\item 
using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_ad2ba39e330ba72610b69e12cd07d4000}{traits\+\_\+type}} = Traits
\end{DoxyCompactItemize}
\doxysubsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
static constexpr std\+::size\+\_\+t \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a3d80b36e15e93932dc4ad12e66c2d45b}{capacity}} = Capacity $>$ 0 ? Capacity \+: Traits\+::default\+\_\+capacity
\begin{DoxyCompactList}\small\item\em Equal to Capacity if specified, else Traits\+::default\+\_\+capacity. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Related Functions}
(Note that these are not member functions.) \begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename T , typename D  = T, std\+::size\+\_\+t Capacity = sizeof(\+D), typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+T$>$, typename... Args$>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_ab278276b4bf1afaa2a59d73a16741ea6}{make\+\_\+poly\+\_\+obj}} (Args \&\&... args, std\+::nullptr\+\_\+t=\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_ae2dd41c896b1e979fa511e09a7a22df5}{poly\+\_\+warn\+\_\+if}}$<$(Capacity !=sizeof(D) and Capacity $>$ Traits\+::default\+\_\+capacity)$>$()) -\/$>$ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}}$<$ T, std\+::max(Capacity, Traits\+::default\+\_\+capacity), Traits $>$
\begin{DoxyCompactList}\small\item\em A convenience factory for making poly\+\_\+objs. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Object Access}
These functions allow access to the contained value. \begin{DoxyCompactItemize}
\item 
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a51b26dd8cb7f5bdb4d655750ccefacf0}{operator$\ast$}} () \&noexcept -\/$>$ Obj \&
\begin{DoxyCompactList}\small\item\em Returns a reference to the contained object. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a234de42404298753a4d0e2c9ec71710c}{operator$\ast$}} () const \&noexcept -\/$>$ const Obj \&
\begin{DoxyCompactList}\small\item\em Returns a reference to the contained object. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a944ae002428905cda0486426b10a4e61}{operator$\ast$}} () \&\&noexcept(Traits\+::nothrow\+\_\+movable) -\/$>$ Obj \&\&
\begin{DoxyCompactList}\small\item\em Returns a reference to the contained object. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a60213c601a4a2fc10b98be00fbca7310}{operator$\ast$}} () const \&\&noexcept(Traits\+::nothrow\+\_\+movable) -\/$>$ const Obj \&\&
\begin{DoxyCompactList}\small\item\em Returns a reference to the contained object. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a1dedef17c34510e445d8bb350fb18f3a}{get}} () \&noexcept -\/$>$ Obj $\ast$
\begin{DoxyCompactList}\small\item\em Returns a pointer to the contained object. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a83023cdbc440990db2986cf84009b40c}{get}} () const \&noexcept -\/$>$ const Obj $\ast$
\begin{DoxyCompactList}\small\item\em Returns a pointer to the contained object. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a4d93006921ce58d3321b5eb4c55581b1}{operator-\/$>$}} () \&noexcept -\/$>$ Obj $\ast$
\begin{DoxyCompactList}\small\item\em Returns a pointer to the contained object. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_addef649e3a94aabf4b6892d0e2333d58}{operator-\/$>$}} () const \&noexcept -\/$>$ const Obj $\ast$
\begin{DoxyCompactList}\small\item\em Returns a pointer to the contained object. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename... Args$>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_aba4528051cee6551b4befd1d2251d56a}{operator()}} (Args \&\&... args) noexcept(\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1fakestd_1_1is__nothrow__invocable}{is\+\_\+nothrow\+\_\+invocable}}$<$ Obj \&, Args \&\&... $>$\+::value) -\/$>$ \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1fakestd_aa9029c08283e2829c728feba77398aa0}{fakestd\+::invoke\+\_\+result\+\_\+t}}$<$ Obj \&, Args \&\&... $>$
\begin{DoxyCompactList}\small\item\em Invokes the contained function object, if Obj is a callable type. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename... Args$>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a6220db4c78e028181bd44d11661c8a50}{operator()}} (Args \&\&... args) const noexcept(\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1fakestd_1_1is__nothrow__invocable}{is\+\_\+nothrow\+\_\+invocable}}$<$ const Obj \&, Args \&\&... $>$\+::value) -\/$>$ \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1fakestd_aa9029c08283e2829c728feba77398aa0}{fakestd\+::invoke\+\_\+result\+\_\+t}}$<$ const Obj \&, Args \&\&... $>$
\begin{DoxyCompactList}\small\item\em Invokes the contained function object, if Obj is a callable type. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename member\+\_\+type $>$ }\\\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ member\+\_\+type Obj\+::$\ast$ $>$\+::value, member\+\_\+type $>$ \& \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a25b4799788a1c99e66d3b819a451fcb9}{operator-\/$>$$\ast$}} (member\+\_\+type Obj\+::$\ast$member) \&noexcept
\begin{DoxyCompactList}\small\item\em Access a member variable using a pointer to member. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename member\+\_\+type $>$ }\\const \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ member\+\_\+type Obj\+::$\ast$ $>$\+::value, member\+\_\+type $>$ \& \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a347b63207ea4ff2bcc6f0b0954397613}{operator-\/$>$$\ast$}} (member\+\_\+type Obj\+::$\ast$member) const \&noexcept
\begin{DoxyCompactList}\small\item\em Access a member variable using a pointer to member. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename member\+\_\+type $>$ }\\\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ member\+\_\+type Obj\+::$\ast$ $>$\+::value, member\+\_\+type $>$ \&\& \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_ae72069f6aa9de79add88f814d107a33a}{operator-\/$>$$\ast$}} (member\+\_\+type Obj\+::$\ast$member) \&\&noexcept
\begin{DoxyCompactList}\small\item\em Access a member variable using a pointer to member. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename member\+\_\+type $>$ }\\const \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ member\+\_\+type Obj\+::$\ast$ $>$\+::value, member\+\_\+type $>$ \&\& \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a9512649f755dc28f4edce8135ba685bc}{operator-\/$>$$\ast$}} (member\+\_\+type Obj\+::$\ast$member) const \&\&noexcept
\begin{DoxyCompactList}\small\item\em Access a member variable using a pointer to member. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename member\+\_\+type , typename... Args$>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a53d63910defa970413fe4937566a4fc4}{operator-\/$>$$\ast$}} (member\+\_\+type(Obj\+::$\ast$member)(Args...)) \&noexcept
\begin{DoxyCompactList}\small\item\em Call a member function using a pointer to member. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename member\+\_\+type , typename... Args$>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_ad69bc9b8ce2df82e372395ae72765734}{operator-\/$>$$\ast$}} (member\+\_\+type(Obj\+::$\ast$member)(Args...) const) \&noexcept
\begin{DoxyCompactList}\small\item\em Call a member function using a pointer to member. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename member\+\_\+type , typename... Args$>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_ae6270f0e44d48938a85ca7ef033b8943}{operator-\/$>$$\ast$}} (member\+\_\+type(Obj\+::$\ast$member)(Args...) const) const \&noexcept
\begin{DoxyCompactList}\small\item\em Call a member function using a pointer to member. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename member\+\_\+type , typename... Args$>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_abae2154ffae70c52612fa40efeebe2db}{operator-\/$>$$\ast$}} (member\+\_\+type(Obj\+::$\ast$member)(Args...) const) \&\&noexcept
\begin{DoxyCompactList}\small\item\em Call a member function using a pointer to member. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename member\+\_\+type , typename... Args$>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a601b91d81cf52ebd605b5013de9905ac}{operator-\/$>$$\ast$}} (member\+\_\+type(Obj\+::$\ast$member)(Args...) \&) \&noexcept
\begin{DoxyCompactList}\small\item\em Call a member function using a pointer to member. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename member\+\_\+type , typename... Args$>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a5218a3f7a14b67a3be324e0f421d7f27}{operator-\/$>$$\ast$}} (member\+\_\+type(Obj\+::$\ast$member)(Args...) const \&) \&noexcept
\begin{DoxyCompactList}\small\item\em Call a member function using a pointer to member. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename member\+\_\+type , typename... Args$>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_ad48d8265366c8b7fbaaac807028d23a6}{operator-\/$>$$\ast$}} (member\+\_\+type(Obj\+::$\ast$member)(Args...) const \&) const \&noexcept
\begin{DoxyCompactList}\small\item\em Call a member function using a pointer to member. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename member\+\_\+type , typename... Args$>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_ae4c680784b1a86cc18f39d3de0a65620}{operator-\/$>$$\ast$}} (member\+\_\+type(Obj\+::$\ast$member)(Args...) \&\&) \&\&noexcept
\begin{DoxyCompactList}\small\item\em Call a member function using a pointer to member. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename member\+\_\+type , typename... Args$>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_abbdb1eb0fcf20a40ee833e799d452f13}{operator-\/$>$$\ast$}} (member\+\_\+type(Obj\+::$\ast$member)(Args...) const \&) \&\&noexcept
\begin{DoxyCompactList}\small\item\em Call a member function using a pointer to member. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename member\+\_\+type , typename... Args$>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_abd74e753aa79b82e624a91144749fe1d}{operator-\/$>$$\ast$}} (member\+\_\+type(Obj\+::$\ast$member)(Args...)) \&\&noexcept
\begin{DoxyCompactList}\small\item\em Call a member function using a pointer to member. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename member\+\_\+type , typename... Args$>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a48e745ca45c77da9d8e780d8d7869f41}{operator-\/$>$$\ast$}} (member\+\_\+type(Obj\+::$\ast$member)(Args...) const \&\&) \&\&noexcept
\begin{DoxyCompactList}\small\item\em Call a member function using a pointer to member. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename member\+\_\+type , typename... Args$>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a7a8826dddd2e96f0367df9be434624e2}{operator-\/$>$$\ast$}} (member\+\_\+type(Obj\+::$\ast$member)(Args...) const \&\&) const \&\&noexcept
\begin{DoxyCompactList}\small\item\em Call a member function using a pointer to member. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Construction}
\begin{DoxyCompactItemize}
\item 
constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a7806eddc12dd681dbf0cfae5b16afa7e}{poly\+\_\+obj}} ()=default
\begin{DoxyCompactList}\small\item\em The default constructor does not construct any contained object. \end{DoxyCompactList}\item 
constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_adef6f1c88b76c659209c7046d407cfa4}{poly\+\_\+obj}} (std\+::nullptr\+\_\+t) noexcept
\begin{DoxyCompactList}\small\item\em Explicitly do not construct an object. \end{DoxyCompactList}\item 
constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_afdda6389f957d1f32a6b6aab299de7bc}{poly\+\_\+obj}} (const Obj \&obj)
\begin{DoxyCompactList}\small\item\em Copy-\/constructs the contained object from obj. \end{DoxyCompactList}\item 
constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_accaeae6532c3def4f16025bdfe33aab3}{poly\+\_\+obj}} (Obj \&\&obj) noexcept(Traits\+::nothrow\+\_\+movable)
\begin{DoxyCompactList}\small\item\em Move-\/constructs the contained object from obj. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename... Args, typename std\+::enable\+\_\+if\+\_\+t$<$ std\+::is\+\_\+constructible$<$ Obj, Args... $>$\+::value, int $>$  = 0$>$ }\\constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a69e39e5063e406dc6d668b0d0b4354f2}{poly\+\_\+obj}} (\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1fakestd_1_1in__place__t}{fakestd\+::in\+\_\+place\+\_\+t}}, Args \&\&... args) noexcept(std\+::is\+\_\+nothrow\+\_\+constructible$<$ Obj, Args \&\&... $>$\+::value)
\begin{DoxyCompactList}\small\item\em Constructs the contained object in-\/place without copying or moving. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename... Args, typename std\+::enable\+\_\+if\+\_\+t$<$ std\+::is\+\_\+constructible$<$ Obj, Args... $>$\+::value, int $>$  = 0$>$ }\\constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a87bace59005179e67113c8ae0c375f43}{poly\+\_\+obj}} (kblib\+::in\+\_\+place\+\_\+agg\+\_\+t, Args \&\&... args) noexcept(std\+::is\+\_\+nothrow\+\_\+constructible$<$ Obj, Args \&\&... $>$\+::value)
\begin{DoxyCompactList}\small\item\em Constructs the contained object in-\/place without copying or moving. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename U , typename... Args$>$ }\\static auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a1e6f2703ad86bc9d01956c693b7509c9}{make}} (Args \&\&... args) noexcept(std\+::is\+\_\+nothrow\+\_\+constructible$<$ U, Args \&\&... $>$\+::value) -\/$>$ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}}
\begin{DoxyCompactList}\small\item\em Constructs a \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} containing an object of derived type. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename U , typename... Args$>$ }\\static auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a572c9aa7df3ee62ca1a50c3288c30141}{make\+\_\+aggregate}} (Args \&\&... args) noexcept(std\+::is\+\_\+nothrow\+\_\+constructible$<$ U, Args \&\&... $>$\+::value) -\/$>$ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}}
\begin{DoxyCompactList}\small\item\em Constructs a \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} containing an object of derived type. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Copy/move operators}
\begin{DoxyCompactItemize}
\item 
constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a8bdb0d1ff7956cf95e67fcbc983a6747}{poly\+\_\+obj}} (const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} \&other)
\begin{DoxyCompactList}\small\item\em Constructs a copy of other. \end{DoxyCompactList}\item 
constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a9e6f1ada4487eddd2335ef5b56331d35}{poly\+\_\+obj}} (\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} \&\&other) noexcept(Traits\+::nothrow\+\_\+movable)
\begin{DoxyCompactList}\small\item\em Moves the contained object of other into this. Note that the moved-\/ from \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} is not cleared; instead, its contained value is moved from. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a980472f2b8a1b8bd1e6ff581038a6a26}{operator=}} (const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} \&other) \&-\/$>$ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} \&
\begin{DoxyCompactList}\small\item\em Destroys the contained object, if any, and then copies other as in the copy constructor. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_af1ae9fcb4e0ef660c616b6d2a61b2a96}{operator=}} (\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} \&\&other) \&noexcept(Traits\+::nothrow\+\_\+movable) -\/$>$ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} \&
\begin{DoxyCompactList}\small\item\em Destroys the contained object, if any, and then moves from other as in the move constructor. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Validity}
Check if the \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} contains a value. \begin{DoxyCompactItemize}
\item 
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a28b22c0d86610c561052fc814c8ceca7}{has\+\_\+value}} () const \&noexcept -\/$>$ bool
\item 
\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a370e048b492126745f51194dbebb89b7}{operator bool}} () const \&noexcept
\end{DoxyCompactItemize}
\doxysubsection*{Destruction}
\begin{DoxyCompactItemize}
\item 
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_a4eaf49c0b7a3a8668fc738ddbc213f5d}{clear}} () noexcept -\/$>$ void
\begin{DoxyCompactList}\small\item\em Empties the \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}}, reverting to a default-\/constructed state. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj_aa592c8161b598b5570f68fc2d1a4a8a9}{$\sim$poly\+\_\+obj}} () noexcept
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Obj, std\+::size\+\_\+t Capacity = 0, typename Traits = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$\newline
class KBLIB\+\_\+\+NS\+::poly\+\_\+obj$<$ Obj, Capacity, Traits $>$}
Inline polymorphic object. Generally mimics the interfaces of std\+::optional and std\+::variant. 

Provides dynamic polymorphism without dynamic allocation. By default, it is copy and move constructible if and only if Obj is. The storage capacity can be overloaded in case derived objects are larger than the base (this is expected to be commonplace).


\begin{DoxyTemplParams}{Template Parameters}
{\em Obj} & The base class type which the \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} will store. Must have a virtual destructor unless a custom traits class is provided. \\
\hline
{\em Capacity} & The inline capacity allocated for the contained object. May be set larger than sizeof(\+Obj) to account for larger derived classes. A value of 0 indicates that the traits type should be used to obtain the capacity. \\
\hline
{\em Traits} & A type providing member types and constants defining the allowed operations on the object type.\\
\hline
\end{DoxyTemplParams}
\begin{DoxySeeAlso}{See also}
kblib\+::poly\+\_\+obj\+\_\+traits 
\end{DoxySeeAlso}


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



\doxysubsection{Member Typedef Documentation}
\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a46068bcd9de6076840cc117e5e56f5aa}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a46068bcd9de6076840cc117e5e56f5aa}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!base\_type@{base\_type}}
\index{base\_type@{base\_type}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{base\_type}{base\_type}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::base\+\_\+type =  Obj}



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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_ad2ba39e330ba72610b69e12cd07d4000}\label{class_k_b_l_i_b___n_s_1_1poly__obj_ad2ba39e330ba72610b69e12cd07d4000}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!traits\_type@{traits\_type}}
\index{traits\_type@{traits\_type}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{traits\_type}{traits\_type}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::traits\+\_\+type =  Traits}



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



\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a7806eddc12dd681dbf0cfae5b16afa7e}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a7806eddc12dd681dbf0cfae5b16afa7e}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!poly\_obj@{poly\_obj}}
\index{poly\_obj@{poly\_obj}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{poly\_obj()}{poly\_obj()}\hspace{0.1cm}{\footnotesize\ttfamily [1/8]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::poly\+\_\+obj (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [default]}}



The default constructor does not construct any contained object. 

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_adef6f1c88b76c659209c7046d407cfa4}\label{class_k_b_l_i_b___n_s_1_1poly__obj_adef6f1c88b76c659209c7046d407cfa4}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!poly\_obj@{poly\_obj}}
\index{poly\_obj@{poly\_obj}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{poly\_obj()}{poly\_obj()}\hspace{0.1cm}{\footnotesize\ttfamily [2/8]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::poly\+\_\+obj (\begin{DoxyParamCaption}\item[{std\+::nullptr\+\_\+t}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Explicitly do not construct an object. 



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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_afdda6389f957d1f32a6b6aab299de7bc}\label{class_k_b_l_i_b___n_s_1_1poly__obj_afdda6389f957d1f32a6b6aab299de7bc}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!poly\_obj@{poly\_obj}}
\index{poly\_obj@{poly\_obj}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{poly\_obj()}{poly\_obj()}\hspace{0.1cm}{\footnotesize\ttfamily [3/8]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::poly\+\_\+obj (\begin{DoxyParamCaption}\item[{const Obj \&}]{obj }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Copy-\/constructs the contained object from obj. 

This function can only be called if Obj is copy-\/constructible.


\begin{DoxyParams}{Parameters}
{\em obj} & The object to copy. \\
\hline
\end{DoxyParams}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_accaeae6532c3def4f16025bdfe33aab3}\label{class_k_b_l_i_b___n_s_1_1poly__obj_accaeae6532c3def4f16025bdfe33aab3}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!poly\_obj@{poly\_obj}}
\index{poly\_obj@{poly\_obj}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{poly\_obj()}{poly\_obj()}\hspace{0.1cm}{\footnotesize\ttfamily [4/8]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::poly\+\_\+obj (\begin{DoxyParamCaption}\item[{Obj \&\&}]{obj }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Move-\/constructs the contained object from obj. 

This function can only be called if Obj is move-\/constructible.


\begin{DoxyParams}{Parameters}
{\em obj} & The object to move from. \\
\hline
\end{DoxyParams}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a69e39e5063e406dc6d668b0d0b4354f2}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a69e39e5063e406dc6d668b0d0b4354f2}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!poly\_obj@{poly\_obj}}
\index{poly\_obj@{poly\_obj}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{poly\_obj()}{poly\_obj()}\hspace{0.1cm}{\footnotesize\ttfamily [5/8]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename... Args, typename std\+::enable\+\_\+if\+\_\+t$<$ std\+::is\+\_\+constructible$<$ Obj, Args... $>$\+::value, int $>$  = 0$>$ \\
constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::poly\+\_\+obj (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1fakestd_1_1in__place__t}{fakestd\+::in\+\_\+place\+\_\+t}}}]{,  }\item[{Args \&\&...}]{args }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Constructs the contained object in-\/place without copying or moving. 


\begin{DoxyParams}{Parameters}
{\em args} & Arguments to be passed to the constructor of Obj. \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
kblib\+::fakestd\+::in\+\_\+place 
\end{DoxySeeAlso}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a87bace59005179e67113c8ae0c375f43}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a87bace59005179e67113c8ae0c375f43}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!poly\_obj@{poly\_obj}}
\index{poly\_obj@{poly\_obj}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{poly\_obj()}{poly\_obj()}\hspace{0.1cm}{\footnotesize\ttfamily [6/8]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename... Args, typename std\+::enable\+\_\+if\+\_\+t$<$ std\+::is\+\_\+constructible$<$ Obj, Args... $>$\+::value, int $>$  = 0$>$ \\
constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::poly\+\_\+obj (\begin{DoxyParamCaption}\item[{kblib\+::in\+\_\+place\+\_\+agg\+\_\+t}]{,  }\item[{Args \&\&...}]{args }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Constructs the contained object in-\/place without copying or moving. 


\begin{DoxyParams}{Parameters}
{\em args} & Arguments to be passed to the constructor of Obj. \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
kblib\+::in\+\_\+place\+\_\+agg 
\end{DoxySeeAlso}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a8bdb0d1ff7956cf95e67fcbc983a6747}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a8bdb0d1ff7956cf95e67fcbc983a6747}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!poly\_obj@{poly\_obj}}
\index{poly\_obj@{poly\_obj}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{poly\_obj()}{poly\_obj()}\hspace{0.1cm}{\footnotesize\ttfamily [7/8]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::poly\+\_\+obj (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$ \&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Constructs a copy of other. 

This function can only be called if Traits\+::copyable is true.


\begin{DoxyParams}{Parameters}
{\em other} & A \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} to copy from. \\
\hline
\end{DoxyParams}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a9e6f1ada4487eddd2335ef5b56331d35}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a9e6f1ada4487eddd2335ef5b56331d35}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!poly\_obj@{poly\_obj}}
\index{poly\_obj@{poly\_obj}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{poly\_obj()}{poly\_obj()}\hspace{0.1cm}{\footnotesize\ttfamily [8/8]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::poly\+\_\+obj (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$ \&\&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Moves the contained object of other into this. Note that the moved-\/ from \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} is not cleared; instead, its contained value is moved from. 

This function can only be called if Traits\+::movable is true.


\begin{DoxyParams}{Parameters}
{\em other} & A \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} to move from. \\
\hline
\end{DoxyParams}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_aa592c8161b598b5570f68fc2d1a4a8a9}\label{class_k_b_l_i_b___n_s_1_1poly__obj_aa592c8161b598b5570f68fc2d1a4a8a9}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!````~poly\_obj@{$\sim$poly\_obj}}
\index{````~poly\_obj@{$\sim$poly\_obj}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{$\sim$poly\_obj()}{~poly\_obj()}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::$\sim$\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



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



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a4eaf49c0b7a3a8668fc738ddbc213f5d}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a4eaf49c0b7a3a8668fc738ddbc213f5d}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!clear@{clear}}
\index{clear@{clear}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{clear()}{clear()}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::clear (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Empties the \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}}, reverting to a default-\/constructed state. 



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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a1dedef17c34510e445d8bb350fb18f3a}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a1dedef17c34510e445d8bb350fb18f3a}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!get@{get}}
\index{get@{get}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::get (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) \& -\/$>$ Obj$\ast$ \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a pointer to the contained object. 

Returns a reference to the contained object, if it exists. If it does not exist, the behavior is undefined. Notably, the constness of $\ast$this carries over to the contained object, because it is contained inside of $\ast$this.

\begin{DoxyReturn}{Returns}
Obj$\ast$ A pointer to the contained object. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a83023cdbc440990db2986cf84009b40c}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a83023cdbc440990db2986cf84009b40c}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!get@{get}}
\index{get@{get}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::get (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const \& -\/$>$ const Obj$\ast$ \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a pointer to the contained object. 

Returns a reference to the contained object, if it exists. If it does not exist, the behavior is undefined. Notably, the constness of $\ast$this carries over to the contained object, because it is contained inside of $\ast$this.

\begin{DoxyReturn}{Returns}
const Obj$\ast$ A pointer to the contained object. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a28b22c0d86610c561052fc814c8ceca7}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a28b22c0d86610c561052fc814c8ceca7}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!has\_value@{has\_value}}
\index{has\_value@{has\_value}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{has\_value()}{has\_value()}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::has\+\_\+value (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const \& -\/$>$ bool \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a1e6f2703ad86bc9d01956c693b7509c9}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a1e6f2703ad86bc9d01956c693b7509c9}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!make@{make}}
\index{make@{make}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{make()}{make()}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename U , typename... Args$>$ \\
static auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::make (\begin{DoxyParamCaption}\item[{Args \&\&...}]{args }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}, {\ttfamily [noexcept]}}



Constructs a \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} containing an object of derived type. 

This function provides the polymorphism of \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}}.

sizeof(\+U) must be less than or equal to capacity, and must be copy-\/constructible and move-\/constructible if Traits is.


\begin{DoxyTemplParams}{Template Parameters}
{\em U} & A type publically derived from Obj. \\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em args} & Arguments to pass to the constructor of U. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} A poly\+\_\+obj$<$\+Obj$>$ containing an object of type U. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a572c9aa7df3ee62ca1a50c3288c30141}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a572c9aa7df3ee62ca1a50c3288c30141}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!make\_aggregate@{make\_aggregate}}
\index{make\_aggregate@{make\_aggregate}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{make\_aggregate()}{make\_aggregate()}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename U , typename... Args$>$ \\
static auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::make\+\_\+aggregate (\begin{DoxyParamCaption}\item[{Args \&\&...}]{args }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}, {\ttfamily [noexcept]}}



Constructs a \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} containing an object of derived type. 

This function provides the polymorphism of \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}}.

sizeof(\+U) must be less than or equal to capacity, and must be copy-\/constructible and move-\/constructible if Traits is.


\begin{DoxyTemplParams}{Template Parameters}
{\em U} & A type publically derived from Obj. \\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em args} & Arguments to pass to the constructor of U. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} A poly\+\_\+obj$<$\+Obj$>$ containing an object of type U. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a370e048b492126745f51194dbebb89b7}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a370e048b492126745f51194dbebb89b7}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator bool@{operator bool}}
\index{operator bool@{operator bool}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator bool()}{operator bool()}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator bool (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const \&\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}, {\ttfamily [noexcept]}}



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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a6220db4c78e028181bd44d11661c8a50}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a6220db4c78e028181bd44d11661c8a50}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator()@{operator()}}
\index{operator()@{operator()}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename... Args$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator() (\begin{DoxyParamCaption}\item[{Args \&\&...}]{args }\end{DoxyParamCaption}) const -\/$>$ \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1fakestd_aa9029c08283e2829c728feba77398aa0}{fakestd\+::invoke\+\_\+result\+\_\+t}}$<$const Obj\&, Args\&\&...$>$ \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Invokes the contained function object, if Obj is a callable type. 

Invokes the contained object, if it exists. If it does not exist, the behavior is undefined.


\begin{DoxyParams}{Parameters}
{\em args} & The arguments to forward to the function. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
invoke\+\_\+result\+\_\+t$<$const Obj\&, Args\&\&...$>$ The return value of the function. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_aba4528051cee6551b4befd1d2251d56a}\label{class_k_b_l_i_b___n_s_1_1poly__obj_aba4528051cee6551b4befd1d2251d56a}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator()@{operator()}}
\index{operator()@{operator()}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename... Args$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator() (\begin{DoxyParamCaption}\item[{Args \&\&...}]{args }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1fakestd_aa9029c08283e2829c728feba77398aa0}{fakestd\+::invoke\+\_\+result\+\_\+t}}$<$Obj\&, Args\&\&...$>$ \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Invokes the contained function object, if Obj is a callable type. 

Invokes the contained object, if it exists. If it does not exist, the behavior is undefined.


\begin{DoxyParams}{Parameters}
{\em args} & The arguments to forward to the function. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
invoke\+\_\+result\+\_\+t$<$\+Obj\&, Args\&\&...$>$ The return value of the function. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a944ae002428905cda0486426b10a4e61}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a944ae002428905cda0486426b10a4e61}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator$\ast$()}{operator*()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator$\ast$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) \&\& -\/$>$ Obj\&\& \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a reference to the contained object. 

Returns a reference to the contained object, if it exists. If it does not exist, the behavior is undefined. Notably, the constness and reference qualification of $\ast$this carries over to the contained object, because it is contained inside of $\ast$this.

\begin{DoxyReturn}{Returns}
Obj\&\& An rvalue reference to the contained object. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a51b26dd8cb7f5bdb4d655750ccefacf0}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a51b26dd8cb7f5bdb4d655750ccefacf0}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator$\ast$()}{operator*()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator$\ast$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) \& -\/$>$ Obj\& \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a reference to the contained object. 

Returns a reference to the contained object, if it exists. If it does not exist, the behavior is undefined. Notably, the constness and reference qualification of $\ast$this carries over to the contained object, because it is contained inside of $\ast$this.

\begin{DoxyReturn}{Returns}
Obj\& A reference to the contained object. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a60213c601a4a2fc10b98be00fbca7310}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a60213c601a4a2fc10b98be00fbca7310}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator$\ast$()}{operator*()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator$\ast$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const \&\& -\/$>$ const Obj\&\& \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a reference to the contained object. 

Returns a reference to the contained object, if it exists. If it does not exist, the behavior is undefined. Notably, the constness and reference qualification of $\ast$this carries over to the contained object, because it is contained inside of $\ast$this.

This particular overload is not expected to be very useful, but it is provided for completeness.

\begin{DoxyReturn}{Returns}
const Obj\&\& A const rvalue reference to the contained object. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a234de42404298753a4d0e2c9ec71710c}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a234de42404298753a4d0e2c9ec71710c}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator$\ast$()}{operator*()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator$\ast$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const \& -\/$>$ const Obj\& \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a reference to the contained object. 

Returns a reference to the contained object, if it exists. If it does not exist, the behavior is undefined. Notably, the constness and reference qualification of $\ast$this carries over to the contained object, because it is contained inside of $\ast$this.

\begin{DoxyReturn}{Returns}
const Obj\& A reference to the contained object. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a4d93006921ce58d3321b5eb4c55581b1}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a4d93006921ce58d3321b5eb4c55581b1}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$@{operator-\/$>$}}
\index{operator-\/$>$@{operator-\/$>$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$()}{operator->()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) \& -\/$>$ Obj$\ast$ \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a pointer to the contained object. 

Returns a reference to the contained object, if it exists. If it does not exist, the behavior is undefined. Notably, the constness of $\ast$this carries over to the contained object, because it is contained inside of $\ast$this.

\begin{DoxyReturn}{Returns}
Obj$\ast$ A pointer to the contained object. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_addef649e3a94aabf4b6892d0e2333d58}\label{class_k_b_l_i_b___n_s_1_1poly__obj_addef649e3a94aabf4b6892d0e2333d58}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$@{operator-\/$>$}}
\index{operator-\/$>$@{operator-\/$>$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$()}{operator->()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const \& -\/$>$ const Obj$\ast$ \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a pointer to the contained object. 

Returns a reference to the contained object, if it exists. If it does not exist, the behavior is undefined. Notably, the constness of $\ast$this carries over to the contained object, because it is contained inside of $\ast$this.

\begin{DoxyReturn}{Returns}
const Obj$\ast$ A pointer to the contained object. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_ae72069f6aa9de79add88f814d107a33a}\label{class_k_b_l_i_b___n_s_1_1poly__obj_ae72069f6aa9de79add88f814d107a33a}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$$\ast$@{operator-\/$>$$\ast$}}
\index{operator-\/$>$$\ast$@{operator-\/$>$$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$$\ast$()}{operator->*()}\hspace{0.1cm}{\footnotesize\ttfamily [1/16]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename member\+\_\+type $>$ \\
\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ member\+\_\+type Obj\+::$\ast$ $>$\+::value, member\+\_\+type $>$ \&\& \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$$\ast$ (\begin{DoxyParamCaption}\item[{member\+\_\+type Obj\+::$\ast$}]{member }\end{DoxyParamCaption}) \&\&\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Access a member variable using a pointer to member. 



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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a25b4799788a1c99e66d3b819a451fcb9}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a25b4799788a1c99e66d3b819a451fcb9}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$$\ast$@{operator-\/$>$$\ast$}}
\index{operator-\/$>$$\ast$@{operator-\/$>$$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$$\ast$()}{operator->*()}\hspace{0.1cm}{\footnotesize\ttfamily [2/16]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename member\+\_\+type $>$ \\
\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ member\+\_\+type Obj\+::$\ast$ $>$\+::value, member\+\_\+type $>$ \& \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$$\ast$ (\begin{DoxyParamCaption}\item[{member\+\_\+type Obj\+::$\ast$}]{member }\end{DoxyParamCaption}) \&\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Access a member variable using a pointer to member. 



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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a9512649f755dc28f4edce8135ba685bc}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a9512649f755dc28f4edce8135ba685bc}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$$\ast$@{operator-\/$>$$\ast$}}
\index{operator-\/$>$$\ast$@{operator-\/$>$$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$$\ast$()}{operator->*()}\hspace{0.1cm}{\footnotesize\ttfamily [3/16]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename member\+\_\+type $>$ \\
const \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ member\+\_\+type Obj\+::$\ast$ $>$\+::value, member\+\_\+type $>$ \&\& \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$$\ast$ (\begin{DoxyParamCaption}\item[{member\+\_\+type Obj\+::$\ast$}]{member }\end{DoxyParamCaption}) const \&\&\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Access a member variable using a pointer to member. 



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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a347b63207ea4ff2bcc6f0b0954397613}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a347b63207ea4ff2bcc6f0b0954397613}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$$\ast$@{operator-\/$>$$\ast$}}
\index{operator-\/$>$$\ast$@{operator-\/$>$$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$$\ast$()}{operator->*()}\hspace{0.1cm}{\footnotesize\ttfamily [4/16]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename member\+\_\+type $>$ \\
const \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ not std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ member\+\_\+type Obj\+::$\ast$ $>$\+::value, member\+\_\+type $>$ \& \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$$\ast$ (\begin{DoxyParamCaption}\item[{member\+\_\+type Obj\+::$\ast$}]{member }\end{DoxyParamCaption}) const \&\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Access a member variable using a pointer to member. 



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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_ae4c680784b1a86cc18f39d3de0a65620}\label{class_k_b_l_i_b___n_s_1_1poly__obj_ae4c680784b1a86cc18f39d3de0a65620}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$$\ast$@{operator-\/$>$$\ast$}}
\index{operator-\/$>$$\ast$@{operator-\/$>$$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$$\ast$()}{operator->*()}\hspace{0.1cm}{\footnotesize\ttfamily [5/16]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename member\+\_\+type , typename... Args$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$$\ast$ (\begin{DoxyParamCaption}\item[{member\+\_\+type(Obj\+::$\ast$)(Args...) member \&\&}]{ }\end{DoxyParamCaption}) \&\&\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Call a member function using a pointer to member. 

\begin{DoxyRemark}{Remarks}
\&\& on \&\& 
\end{DoxyRemark}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a601b91d81cf52ebd605b5013de9905ac}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a601b91d81cf52ebd605b5013de9905ac}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$$\ast$@{operator-\/$>$$\ast$}}
\index{operator-\/$>$$\ast$@{operator-\/$>$$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$$\ast$()}{operator->*()}\hspace{0.1cm}{\footnotesize\ttfamily [6/16]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename member\+\_\+type , typename... Args$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$$\ast$ (\begin{DoxyParamCaption}\item[{member\+\_\+type(Obj\+::$\ast$)(Args...) member \&}]{ }\end{DoxyParamCaption}) \&\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Call a member function using a pointer to member. 

\begin{DoxyRemark}{Remarks}
\& on \& 
\end{DoxyRemark}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a48e745ca45c77da9d8e780d8d7869f41}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a48e745ca45c77da9d8e780d8d7869f41}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$$\ast$@{operator-\/$>$$\ast$}}
\index{operator-\/$>$$\ast$@{operator-\/$>$$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$$\ast$()}{operator->*()}\hspace{0.1cm}{\footnotesize\ttfamily [7/16]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename member\+\_\+type , typename... Args$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$$\ast$ (\begin{DoxyParamCaption}\item[{member\+\_\+type(Obj\+::$\ast$)(Args...) const member \&\&}]{ }\end{DoxyParamCaption}) \&\&\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Call a member function using a pointer to member. 

\begin{DoxyRemark}{Remarks}
const\&\& on \&\& 
\end{DoxyRemark}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a7a8826dddd2e96f0367df9be434624e2}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a7a8826dddd2e96f0367df9be434624e2}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$$\ast$@{operator-\/$>$$\ast$}}
\index{operator-\/$>$$\ast$@{operator-\/$>$$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$$\ast$()}{operator->*()}\hspace{0.1cm}{\footnotesize\ttfamily [8/16]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename member\+\_\+type , typename... Args$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$$\ast$ (\begin{DoxyParamCaption}\item[{member\+\_\+type(Obj\+::$\ast$)(Args...) const member \&\&}]{ }\end{DoxyParamCaption}) const \&\&\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Call a member function using a pointer to member. 

\begin{DoxyRemark}{Remarks}
const\&\& on const\&\& 
\end{DoxyRemark}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_abbdb1eb0fcf20a40ee833e799d452f13}\label{class_k_b_l_i_b___n_s_1_1poly__obj_abbdb1eb0fcf20a40ee833e799d452f13}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$$\ast$@{operator-\/$>$$\ast$}}
\index{operator-\/$>$$\ast$@{operator-\/$>$$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$$\ast$()}{operator->*()}\hspace{0.1cm}{\footnotesize\ttfamily [9/16]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename member\+\_\+type , typename... Args$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$$\ast$ (\begin{DoxyParamCaption}\item[{member\+\_\+type(Obj\+::$\ast$)(Args...) const member \&}]{ }\end{DoxyParamCaption}) \&\&\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Call a member function using a pointer to member. 

\begin{DoxyRemark}{Remarks}
const\& on \&\& 
\end{DoxyRemark}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a5218a3f7a14b67a3be324e0f421d7f27}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a5218a3f7a14b67a3be324e0f421d7f27}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$$\ast$@{operator-\/$>$$\ast$}}
\index{operator-\/$>$$\ast$@{operator-\/$>$$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$$\ast$()}{operator->*()}\hspace{0.1cm}{\footnotesize\ttfamily [10/16]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename member\+\_\+type , typename... Args$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$$\ast$ (\begin{DoxyParamCaption}\item[{member\+\_\+type(Obj\+::$\ast$)(Args...) const member \&}]{ }\end{DoxyParamCaption}) \&\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Call a member function using a pointer to member. 

\begin{DoxyRemark}{Remarks}
const\& on \& 
\end{DoxyRemark}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_ad48d8265366c8b7fbaaac807028d23a6}\label{class_k_b_l_i_b___n_s_1_1poly__obj_ad48d8265366c8b7fbaaac807028d23a6}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$$\ast$@{operator-\/$>$$\ast$}}
\index{operator-\/$>$$\ast$@{operator-\/$>$$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$$\ast$()}{operator->*()}\hspace{0.1cm}{\footnotesize\ttfamily [11/16]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename member\+\_\+type , typename... Args$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$$\ast$ (\begin{DoxyParamCaption}\item[{member\+\_\+type(Obj\+::$\ast$)(Args...) const member \&}]{ }\end{DoxyParamCaption}) const \&\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Call a member function using a pointer to member. 

\begin{DoxyRemark}{Remarks}
const\& on const\& 
\end{DoxyRemark}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_abae2154ffae70c52612fa40efeebe2db}\label{class_k_b_l_i_b___n_s_1_1poly__obj_abae2154ffae70c52612fa40efeebe2db}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$$\ast$@{operator-\/$>$$\ast$}}
\index{operator-\/$>$$\ast$@{operator-\/$>$$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$$\ast$()}{operator->*()}\hspace{0.1cm}{\footnotesize\ttfamily [12/16]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename member\+\_\+type , typename... Args$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$$\ast$ (\begin{DoxyParamCaption}\item[{member\+\_\+type(Obj\+::$\ast$)(Args...) const}]{member }\end{DoxyParamCaption}) \&\&\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Call a member function using a pointer to member. 

\begin{DoxyRemark}{Remarks}
const on \&\& 
\end{DoxyRemark}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_ad69bc9b8ce2df82e372395ae72765734}\label{class_k_b_l_i_b___n_s_1_1poly__obj_ad69bc9b8ce2df82e372395ae72765734}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$$\ast$@{operator-\/$>$$\ast$}}
\index{operator-\/$>$$\ast$@{operator-\/$>$$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$$\ast$()}{operator->*()}\hspace{0.1cm}{\footnotesize\ttfamily [13/16]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename member\+\_\+type , typename... Args$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$$\ast$ (\begin{DoxyParamCaption}\item[{member\+\_\+type(Obj\+::$\ast$)(Args...) const}]{member }\end{DoxyParamCaption}) \&\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Call a member function using a pointer to member. 

\begin{DoxyRemark}{Remarks}
const on \& 
\end{DoxyRemark}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_ae6270f0e44d48938a85ca7ef033b8943}\label{class_k_b_l_i_b___n_s_1_1poly__obj_ae6270f0e44d48938a85ca7ef033b8943}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$$\ast$@{operator-\/$>$$\ast$}}
\index{operator-\/$>$$\ast$@{operator-\/$>$$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$$\ast$()}{operator->*()}\hspace{0.1cm}{\footnotesize\ttfamily [14/16]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename member\+\_\+type , typename... Args$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$$\ast$ (\begin{DoxyParamCaption}\item[{member\+\_\+type(Obj\+::$\ast$)(Args...) const}]{member }\end{DoxyParamCaption}) const \&\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Call a member function using a pointer to member. 

\begin{DoxyRemark}{Remarks}
const on const\& 
\end{DoxyRemark}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_abd74e753aa79b82e624a91144749fe1d}\label{class_k_b_l_i_b___n_s_1_1poly__obj_abd74e753aa79b82e624a91144749fe1d}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$$\ast$@{operator-\/$>$$\ast$}}
\index{operator-\/$>$$\ast$@{operator-\/$>$$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$$\ast$()}{operator->*()}\hspace{0.1cm}{\footnotesize\ttfamily [15/16]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename member\+\_\+type , typename... Args$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$$\ast$ (\begin{DoxyParamCaption}\item[{member\+\_\+type(Obj\+::$\ast$)(Args...)}]{member }\end{DoxyParamCaption}) \&\&\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Call a member function using a pointer to member. 

\begin{DoxyRemark}{Remarks}
Unqualified on \&\& 
\end{DoxyRemark}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a53d63910defa970413fe4937566a4fc4}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a53d63910defa970413fe4937566a4fc4}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator-\/$>$$\ast$@{operator-\/$>$$\ast$}}
\index{operator-\/$>$$\ast$@{operator-\/$>$$\ast$}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$$\ast$()}{operator->*()}\hspace{0.1cm}{\footnotesize\ttfamily [16/16]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
template$<$typename member\+\_\+type , typename... Args$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator-\/$>$$\ast$ (\begin{DoxyParamCaption}\item[{member\+\_\+type(Obj\+::$\ast$)(Args...)}]{member }\end{DoxyParamCaption}) \&\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Call a member function using a pointer to member. 

\begin{DoxyRemark}{Remarks}
unqualified on \& 
\end{DoxyRemark}


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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a980472f2b8a1b8bd1e6ff581038a6a26}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a980472f2b8a1b8bd1e6ff581038a6a26}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator=@{operator=}}
\index{operator=@{operator=}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$ \&}]{other }\end{DoxyParamCaption}) \& -\/$>$ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}}\& \hspace{0.3cm}{\ttfamily [inline]}}



Destroys the contained object, if any, and then copies other as in the copy constructor. 


\begin{DoxyParams}{Parameters}
{\em other} & A \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} to copy from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}}\& $\ast$this.
\end{DoxyReturn}
@exceptions In the event that the constructor of Obj throws, the \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} is cleared and the exception rethrown. 

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

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_af1ae9fcb4e0ef660c616b6d2a61b2a96}\label{class_k_b_l_i_b___n_s_1_1poly__obj_af1ae9fcb4e0ef660c616b6d2a61b2a96}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!operator=@{operator=}}
\index{operator=@{operator=}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::operator= (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$ \&\&}]{other }\end{DoxyParamCaption}) \& -\/$>$ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}}\& \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Destroys the contained object, if any, and then moves from other as in the move constructor. 


\begin{DoxyParams}{Parameters}
{\em other} & A \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} to move from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}}\& $\ast$this.
\end{DoxyReturn}
@exceptions In the event that the constructor of Obj throws, the \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}} is cleared and the exception rethrown. 

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



\doxysubsection{Friends And Related Function Documentation}
\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_ab278276b4bf1afaa2a59d73a16741ea6}\label{class_k_b_l_i_b___n_s_1_1poly__obj_ab278276b4bf1afaa2a59d73a16741ea6}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!make\_poly\_obj@{make\_poly\_obj}}
\index{make\_poly\_obj@{make\_poly\_obj}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{make\_poly\_obj()}{make\_poly\_obj()}}
{\footnotesize\ttfamily template$<$typename T , typename D  = T, std\+::size\+\_\+t Capacity = sizeof(\+D), typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+T$>$, typename... Args$>$ \\
auto make\+\_\+poly\+\_\+obj (\begin{DoxyParamCaption}\item[{Args \&\&...}]{args,  }\item[{std\+::nullptr\+\_\+t}]{ = {\ttfamily \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_ae2dd41c896b1e979fa511e09a7a22df5}{poly\+\_\+warn\+\_\+if}}$<$(Capacity~!=~sizeof(D)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~and~Capacity~$>$~Traits\+:\+:default\+\_\+capacity)$>$()} }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{poly\+\_\+obj}}$<$T, std\+::max(Capacity, Traits\+::default\+\_\+capacity), Traits$>$ \hspace{0.3cm}{\ttfamily [related]}}



A convenience factory for making poly\+\_\+objs. 



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



\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1poly__obj_a3d80b36e15e93932dc4ad12e66c2d45b}\label{class_k_b_l_i_b___n_s_1_1poly__obj_a3d80b36e15e93932dc4ad12e66c2d45b}} 
\index{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}!capacity@{capacity}}
\index{capacity@{capacity}!KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$@{KBLIB\_NS::poly\_obj$<$ Obj, Capacity, Traits $>$}}
\doxysubsubsection{\texorpdfstring{capacity}{capacity}}
{\footnotesize\ttfamily template$<$typename Obj , std\+::size\+\_\+t Capacity = 0, typename Traits  = poly\+\_\+obj\+\_\+traits$<$\+Obj$>$$>$ \\
constexpr std\+::size\+\_\+t \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1poly__obj}{KBLIB\+\_\+\+NS\+::poly\+\_\+obj}}$<$ Obj, Capacity, Traits $>$\+::capacity = Capacity $>$ 0 ? Capacity \+: Traits\+::default\+\_\+capacity\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [constexpr]}}



Equal to Capacity if specified, else Traits\+::default\+\_\+capacity. 



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



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
kblib/\mbox{\hyperlink{poly__obj_8h}{poly\+\_\+obj.\+h}}\end{DoxyCompactItemize}
