\hypertarget{classfz_1_1sparse__optional}{}\section{sparse\+\_\+optional$<$ T $>$ Class Template Reference} \label{classfz_1_1sparse__optional}\index{sparse\_optional$<$ T $>$@{sparse\_optional$<$ T $>$}} Similar to C++17\textquotesingle{}s std\+::optional, but stores the data in dynamic memory. {\ttfamily \#include $<$optional.\+hpp$>$} \subsection*{Public Member Functions} \begin{DoxyCompactItemize} \item \mbox{\Hypertarget{classfz_1_1sparse__optional_a0c86aee4cc442d690f1d8d0c7b70dd07}\label{classfz_1_1sparse__optional_a0c86aee4cc442d690f1d8d0c7b70dd07}} {\bfseries sparse\+\_\+optional} (T const \&v) \item \mbox{\Hypertarget{classfz_1_1sparse__optional_ad1c533a78ede9ce33902d5fe76b887d0}\label{classfz_1_1sparse__optional_ad1c533a78ede9ce33902d5fe76b887d0}} \mbox{\hyperlink{classfz_1_1sparse__optional_ad1c533a78ede9ce33902d5fe76b887d0}{sparse\+\_\+optional}} (T $\ast$v) \begin{DoxyCompactList}\small\item\em Takes ownership of pointer. \end{DoxyCompactList}\item \mbox{\Hypertarget{classfz_1_1sparse__optional_a50b0b3538a5542dee6f8fefa2be126f2}\label{classfz_1_1sparse__optional_a50b0b3538a5542dee6f8fefa2be126f2}} {\bfseries sparse\+\_\+optional} (\mbox{\hyperlink{classfz_1_1sparse__optional}{sparse\+\_\+optional}}$<$ T $>$ const \&v) \item \mbox{\Hypertarget{classfz_1_1sparse__optional_ae6894e7fd734f7756a088da96833fe62}\label{classfz_1_1sparse__optional_ae6894e7fd734f7756a088da96833fe62}} {\bfseries sparse\+\_\+optional} (\mbox{\hyperlink{classfz_1_1sparse__optional}{sparse\+\_\+optional}}$<$ T $>$ \&\&v) noexcept \item \mbox{\Hypertarget{classfz_1_1sparse__optional_ac8bb3912a3ce86b15842e79d0b421204}\label{classfz_1_1sparse__optional_ac8bb3912a3ce86b15842e79d0b421204}} void {\bfseries clear} () \item \mbox{\Hypertarget{classfz_1_1sparse__optional_a67b76affb3b5d35fa419ac234144038b}\label{classfz_1_1sparse__optional_a67b76affb3b5d35fa419ac234144038b}} {\bfseries operator bool} () const \item \mbox{\Hypertarget{classfz_1_1sparse__optional_af7f8c6b921dca2b94f6e7ee14e762770}\label{classfz_1_1sparse__optional_af7f8c6b921dca2b94f6e7ee14e762770}} T \& {\bfseries operator$\ast$} () \item \mbox{\Hypertarget{classfz_1_1sparse__optional_a8ec41dd70ff70ec41c5f17918604b3ad}\label{classfz_1_1sparse__optional_a8ec41dd70ff70ec41c5f17918604b3ad}} T const \& {\bfseries operator$\ast$} () const \item \mbox{\Hypertarget{classfz_1_1sparse__optional_af6e485beee07fd401de29c8cdf898c69}\label{classfz_1_1sparse__optional_af6e485beee07fd401de29c8cdf898c69}} T $\ast$ {\bfseries operator-\/$>$} () \item \mbox{\Hypertarget{classfz_1_1sparse__optional_a0cb175f51bed037d56f7ee1494b56e90}\label{classfz_1_1sparse__optional_a0cb175f51bed037d56f7ee1494b56e90}} T const $\ast$ {\bfseries operator-\/$>$} () const \item \mbox{\Hypertarget{classfz_1_1sparse__optional_a3f5e8dde12857d0ed2d697164454c642}\label{classfz_1_1sparse__optional_a3f5e8dde12857d0ed2d697164454c642}} bool {\bfseries operator==} (\mbox{\hyperlink{classfz_1_1sparse__optional}{sparse\+\_\+optional}}$<$ T $>$ const \&cmp) const \item \mbox{\Hypertarget{classfz_1_1sparse__optional_aa12fea897bd5cc8c1ef3d9798c94bb74}\label{classfz_1_1sparse__optional_aa12fea897bd5cc8c1ef3d9798c94bb74}} bool {\bfseries operator!=} (\mbox{\hyperlink{classfz_1_1sparse__optional}{sparse\+\_\+optional}}$<$ T $>$ const \&cmp) const \item \mbox{\Hypertarget{classfz_1_1sparse__optional_a3971d464b0070ed9bd189e45f0c671e5}\label{classfz_1_1sparse__optional_a3971d464b0070ed9bd189e45f0c671e5}} bool {\bfseries operator$<$} (\mbox{\hyperlink{classfz_1_1sparse__optional}{sparse\+\_\+optional}}$<$ T $>$ const \&cmp) const \item \mbox{\Hypertarget{classfz_1_1sparse__optional_a153bf417b738938024b93c351e5f2660}\label{classfz_1_1sparse__optional_a153bf417b738938024b93c351e5f2660}} \mbox{\hyperlink{classfz_1_1sparse__optional}{sparse\+\_\+optional}}$<$ T $>$ \& {\bfseries operator=} (\mbox{\hyperlink{classfz_1_1sparse__optional}{sparse\+\_\+optional}}$<$ T $>$ const \&v) \item \mbox{\Hypertarget{classfz_1_1sparse__optional_a9e4bf164c8b1a6d5b9c71441c596613a}\label{classfz_1_1sparse__optional_a9e4bf164c8b1a6d5b9c71441c596613a}} \mbox{\hyperlink{classfz_1_1sparse__optional}{sparse\+\_\+optional}}$<$ T $>$ \& {\bfseries operator=} (\mbox{\hyperlink{classfz_1_1sparse__optional}{sparse\+\_\+optional}}$<$ T $>$ \&\&v) noexcept \end{DoxyCompactItemize} \subsection{Detailed Description} \subsubsection*{template$<$typename T$>$\newline class fz\+::sparse\+\_\+optional$<$ T $>$} Similar to C++17\textquotesingle{}s std\+::optional, but stores the data in dynamic memory. \mbox{\hyperlink{classfz_1_1sparse__optional}{sparse\+\_\+optional}} is useful to save memory if it is expected that the object is rarely set and the object\textquotesingle{}s size is bigger than a simple pointer. The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} \item \mbox{\hyperlink{optional_8hpp}{optional.\+hpp}}\end{DoxyCompactItemize}