\hypertarget{memory_8h}{}\doxysection{kblib/memory.h File Reference} \label{memory_8h}\index{kblib/memory.h@{kblib/memory.h}} Provides utilities to enable safe and expressive memory management and low-\/level memory manipulation. {\ttfamily \#include \char`\"{}algorithm.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}tdecl.\+h\char`\"{}}\newline {\ttfamily \#include $<$utility$>$}\newline {\ttfamily \#include $<$vector$>$}\newline Include dependency graph for memory.\+h\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{memory_8h__incl} \end{center} \end{figure} This graph shows which files directly or indirectly include this file\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=298pt]{memory_8h__dep__incl} \end{center} \end{figure} \doxysubsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{structkblib_1_1null__construct}{kblib\+::null\+\_\+construct$<$ T, bool $>$}} \item struct \mbox{\hyperlink{structkblib_1_1null__construct_3_01_t_00_01true_01_4}{kblib\+::null\+\_\+construct$<$ T, true $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__memory_1_1filter__deleter__pointer}{kblib\+::detail\+\_\+memory\+::filter\+\_\+deleter\+\_\+pointer$<$ D, T, V $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__memory_1_1filter__deleter__pointer_3_01_d_00_01_t_00_01void__t_3_01typename_01_d_1_1pointer_01_4_01_4}{kblib\+::detail\+\_\+memory\+::filter\+\_\+deleter\+\_\+pointer$<$ D, T, void\+\_\+t$<$ typename D\+::pointer $>$ $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__memory_1_1as__base__class_3_01_t_00_01false_00_01true_01_4}{kblib\+::detail\+\_\+memory\+::as\+\_\+base\+\_\+class$<$ T, false, true $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__memory_1_1as__base__class_3_01_t_00_01true_00_01true_01_4}{kblib\+::detail\+\_\+memory\+::as\+\_\+base\+\_\+class$<$ T, true, true $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__memory_1_1as__base__class_3_01_r_07_6_08_07_a_08_01noexcept_07_e_08_00_01false_00_01false_01_4}{kblib\+::detail\+\_\+memory\+::as\+\_\+base\+\_\+class$<$ R(\&)(\+A) noexcept(\+E), false, false $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__memory_1_1as__base__class_3_01_t_01_6_00_01false_00_01true_01_4}{kblib\+::detail\+\_\+memory\+::as\+\_\+base\+\_\+class$<$ T \&, false, true $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__memory_1_1noop__t}{kblib\+::detail\+\_\+memory\+::noop\+\_\+t}} \item struct \mbox{\hyperlink{structkblib_1_1detail__memory_1_1value__init}{kblib\+::detail\+\_\+memory\+::value\+\_\+init}} \item struct \mbox{\hyperlink{structkblib_1_1detail__memory_1_1rule__zero}{kblib\+::detail\+\_\+memory\+::rule\+\_\+zero$<$ T, Construct, Destroy $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__memory_1_1on__destroy}{kblib\+::detail\+\_\+memory\+::on\+\_\+destroy$<$ T, D $>$}} \item class \mbox{\hyperlink{classkblib_1_1live__wrapper}{kblib\+::live\+\_\+wrapper$<$ T $>$}} \item struct \mbox{\hyperlink{structkblib_1_1live__wrapper_1_1__destroy}{kblib\+::live\+\_\+wrapper$<$ T $>$\+::\+\_\+destroy}} \item class \mbox{\hyperlink{classkblib_1_1live__wrapper_3_01const_01_t_01_4}{kblib\+::live\+\_\+wrapper$<$ const T $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__memory_1_1template__param_3_01_c_3_01_t_01_4_01_4}{kblib\+::detail\+\_\+memory\+::template\+\_\+param$<$ C$<$ T $>$ $>$}} \item struct \mbox{\hyperlink{structkblib_1_1detail__memory_1_1live__ptr__base}{kblib\+::detail\+\_\+memory\+::live\+\_\+ptr\+\_\+base$<$ D $>$}} \item class \mbox{\hyperlink{classkblib_1_1live__ptr}{kblib\+::live\+\_\+ptr$<$ T $>$}} \item class \mbox{\hyperlink{classkblib_1_1live__ptr_3_01const_01m_t_01_4}{kblib\+::live\+\_\+ptr$<$ const m\+T $>$}} \item class \mbox{\hyperlink{classkblib_1_1cond__ptr}{kblib\+::cond\+\_\+ptr$<$ T, Deleter $>$}} \item class \mbox{\hyperlink{classkblib_1_1cond__ptr_3_01_t_0f_0e_00_01_deleter_01_4}{kblib\+::cond\+\_\+ptr$<$ T\mbox{[}$\,$\mbox{]}, Deleter $>$}} \end{DoxyCompactItemize} \doxysubsection*{Namespaces} \begin{DoxyCompactItemize} \item namespace \mbox{\hyperlink{namespacekblib}{kblib}} \begin{DoxyCompactList}\small\item\em The main namespace in which all entities from kblib are defined. \end{DoxyCompactList}\item namespace \mbox{\hyperlink{namespacekblib_1_1detail__memory}{kblib\+::detail\+\_\+memory}} \end{DoxyCompactItemize} \doxysubsection*{Typedefs} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename D , typename T $>$ }\\using \mbox{\hyperlink{namespacekblib_1_1detail__memory_a9cb8ba19f19eee413f3cb3a221bb3a60}{kblib\+::detail\+\_\+memory\+::filter\+\_\+deleter\+\_\+pointer\+\_\+t}} = typename filter\+\_\+deleter\+\_\+pointer$<$ D, T $>$\+::type \end{DoxyCompactItemize} \doxysubsection*{Functions} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename T , typename Deleter $>$ }\\auto \mbox{\hyperlink{namespacekblib_af2d860ddf535b7091b11fc07aabe472f}{kblib\+::make\+\_\+cond\+\_\+ptr}} (std\+::unique\+\_\+ptr$<$ T, Deleter $>$ \&\&arg) noexcept -\/$>$ cond\+\_\+ptr$<$ T, Deleter $>$ \item {\footnotesize template$<$typename T $>$ }\\auto \mbox{\hyperlink{namespacekblib_a52d62500a095e18991f3ad59dcc83327}{kblib\+::make\+\_\+cond\+\_\+ptr}} (T $\ast$arg, bool owner=false) noexcept -\/$>$ cond\+\_\+ptr$<$ T $>$ \item {\footnotesize template$<$typename T , typename Deleter $>$ }\\auto \mbox{\hyperlink{namespacekblib_a6b20de5026ac934359d2cdc1d5426611}{kblib\+::make\+\_\+cond\+\_\+ptr}} (T $\ast$arg, Deleter del) noexcept -\/$>$ cond\+\_\+ptr$<$ T, Deleter $>$ \item {\footnotesize template$<$typename T , typename Deleter $>$ }\\auto \mbox{\hyperlink{namespacekblib_ab19e9968b3988d68b39eaf3b09342d6e}{kblib\+::make\+\_\+cond\+\_\+ptr}} (T $\ast$arg, bool owner, Deleter del) noexcept -\/$>$ cond\+\_\+ptr$<$ T, Deleter $>$ \end{DoxyCompactItemize} \doxysubsection{Detailed Description} Provides utilities to enable safe and expressive memory management and low-\/level memory manipulation. \begin{DoxyAuthor}{Author} killerbee \end{DoxyAuthor} \begin{DoxyDate}{Date} 2019-\/2021 \end{DoxyDate} \begin{DoxyCopyright}{Copyright} GNU General Public Licence v3.\+0 \end{DoxyCopyright} Definition in file \mbox{\hyperlink{memory_8h_source}{memory.\+h}}.