\doxysection{gko::\+ptr\+\_\+param\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classgko_1_1ptr__param}{}\label{classgko_1_1ptr__param}\index{gko::ptr\_param$<$ T $>$@{gko::ptr\_param$<$ T $>$}}


This class is used for function parameters in the place of raw pointers.  




{\ttfamily \+\#include $<$ginkgo/\+core/\+base/\+utils\+\_\+helper.\+hpp$>$}

\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1ptr__param_aa103a3e9e9064a2ba17eb019613d4728}\label{classgko_1_1ptr__param_aa103a3e9e9064a2ba17eb019613d4728} 
{\bfseries ptr\+\_\+param} (T \texorpdfstring{$\ast$}{*}ptr)
\begin{DoxyCompactList}\small\item\em Initializes the \doxylink{classgko_1_1ptr__param}{ptr\+\_\+param} from a raw pointer. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1ptr__param_a63e69e923e5132252dd542e497e6141d}\label{classgko_1_1ptr__param_a63e69e923e5132252dd542e497e6141d} 
{\footnotesize template$<$typename U, std::\+enable\+\_\+if\+\_\+t$<$ std::\+is\+\_\+base\+\_\+of$<$ T, U $>$::\+value $>$ \texorpdfstring{$\ast$}{*} = nullptr$>$ }\\{\bfseries ptr\+\_\+param} (const std::\+shared\+\_\+ptr$<$ U $>$ \&ptr)
\begin{DoxyCompactList}\small\item\em Initializes the \doxylink{classgko_1_1ptr__param}{ptr\+\_\+param} from a shared\+\_\+ptr. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1ptr__param_a5edbc2e180229108b91d083a7a3aa017}\label{classgko_1_1ptr__param_a5edbc2e180229108b91d083a7a3aa017} 
{\footnotesize template$<$typename U, typename Deleter, std::\+enable\+\_\+if\+\_\+t$<$ std::\+is\+\_\+base\+\_\+of$<$ T, U $>$::\+value $>$ \texorpdfstring{$\ast$}{*} = nullptr$>$ }\\{\bfseries ptr\+\_\+param} (const std::\+unique\+\_\+ptr$<$ U, Deleter $>$ \&ptr)
\begin{DoxyCompactList}\small\item\em Initializes the \doxylink{classgko_1_1ptr__param}{ptr\+\_\+param} from a unique\+\_\+ptr. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1ptr__param_af32213ae7b8ded4b855c0a1f5168e97c}\label{classgko_1_1ptr__param_af32213ae7b8ded4b855c0a1f5168e97c} 
{\footnotesize template$<$typename U, std::\+enable\+\_\+if\+\_\+t$<$ std::\+is\+\_\+base\+\_\+of$<$ T, U $>$::\+value $>$ \texorpdfstring{$\ast$}{*} = nullptr$>$ }\\{\bfseries ptr\+\_\+param} (const ptr\+\_\+param$<$ U $>$ \&ptr)
\begin{DoxyCompactList}\small\item\em Initializes the \doxylink{classgko_1_1ptr__param}{ptr\+\_\+param} from a \doxylink{classgko_1_1ptr__param}{ptr\+\_\+param} of a derived type. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1ptr__param_a63c0682955ed9a2a5b8e797d2ee13271}\label{classgko_1_1ptr__param_a63c0682955ed9a2a5b8e797d2ee13271} 
{\bfseries ptr\+\_\+param} (const ptr\+\_\+param \&)=default
\item 
\Hypertarget{classgko_1_1ptr__param_af1d995555beec5598d14e7de736e1dfc}\label{classgko_1_1ptr__param_af1d995555beec5598d14e7de736e1dfc} 
{\bfseries ptr\+\_\+param} (ptr\+\_\+param \&\&)=default
\item 
T \& \doxymbox{\hyperlink{classgko_1_1ptr__param_a195e6ac4608338a9eceb934a90e249df}{operator\texorpdfstring{$\ast$}{*}}} () const
\item 
T \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1ptr__param_adf0aa137dc65b34a4206cd772d51792d}{operator-\/$>$}} () const
\item 
T \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1ptr__param_ad1245c2636fdba26d3a3fab9fec5e068}{get}} () const
\item 
\doxymbox{\hyperlink{classgko_1_1ptr__param_afddb8ecadee059e806589ac4c3f27c56}{operator bool}} () const
\item 
\Hypertarget{classgko_1_1ptr__param_ada1a806c0eaca5f1ee90709839757425}\label{classgko_1_1ptr__param_ada1a806c0eaca5f1ee90709839757425} 
\doxymbox{\hyperlink{classgko_1_1ptr__param_aa103a3e9e9064a2ba17eb019613d4728}{ptr\+\_\+param}} \& {\bfseries operator=} (const \doxymbox{\hyperlink{classgko_1_1ptr__param_aa103a3e9e9064a2ba17eb019613d4728}{ptr\+\_\+param}} \&)=delete
\item 
\Hypertarget{classgko_1_1ptr__param_a24a5516506b111c6480c64315ef06342}\label{classgko_1_1ptr__param_a24a5516506b111c6480c64315ef06342} 
\doxymbox{\hyperlink{classgko_1_1ptr__param_aa103a3e9e9064a2ba17eb019613d4728}{ptr\+\_\+param}} \& {\bfseries operator=} (\doxymbox{\hyperlink{classgko_1_1ptr__param_aa103a3e9e9064a2ba17eb019613d4728}{ptr\+\_\+param}} \&\&)=delete
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename T$>$\newline
class gko::\+ptr\+\_\+param$<$ T $>$}
This class is used for function parameters in the place of raw pointers. 

Pointer parameters should be used for everything that does not involve transfer of ownership. It can be converted to from raw pointers, shared pointers and unique pointers of the specified type or any derived type. This allows functions to be called without having to use \doxylink{namespacegko_aa011422ea11684b8b3121058cd6f8933}{gko::\+lend} or calling .\doxylink{classgko_1_1ptr__param_ad1245c2636fdba26d3a3fab9fec5e068}{get()} for every pointer argument. It probably has no use outside of function parameters, as it is immutable.


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & the pointed-\/to type \\
\hline
\end{DoxyTemplParams}


\label{doc-func-members}
\Hypertarget{classgko_1_1ptr__param_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classgko_1_1ptr__param_ad1245c2636fdba26d3a3fab9fec5e068}\index{gko::ptr\_param$<$ T $>$@{gko::ptr\_param$<$ T $>$}!get@{get}}
\index{get@{get}!gko::ptr\_param$<$ T $>$@{gko::ptr\_param$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{get()}{get()}}
{\footnotesize\ttfamily \label{classgko_1_1ptr__param_ad1245c2636fdba26d3a3fab9fec5e068} 
template$<$typename T$>$ \\
T \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1ptr__param}{gko::\+ptr\+\_\+param}}$<$ T $>$::\+get (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\begin{DoxyReturn}{Returns}
the underlying pointer. 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{classgko_1_1LinOp_a0f5d1c5bbd0ae8bb3a73eca78ff6d1b9}{gko::\+\+Lin\+Op::\+apply()}}, \doxymbox{\hyperlink{classgko_1_1LinOp_ae8e3f6ff61c48ea5e6b3b06e2bc23bd8}{gko::\+\+Lin\+Op::\+apply()}}, \doxymbox{\hyperlink{classgko_1_1LinOp_a8aba659b97d7bb9ad0c1a0d385c28f28}{gko::\+\+Lin\+Op::\+apply()}}, \doxymbox{\hyperlink{classgko_1_1LinOp_acd4edb34e908c3fdeef43fe15e10625d}{gko::\+\+Lin\+Op::\+apply()}}, \doxymbox{\hyperlink{namespacegko_a3c360489a4f78b1fc92f75f27b3b7e13}{gko::\+as()}}, \doxymbox{\hyperlink{namespacegko_a2f94c3fc158c7bed4506a5fa03746e09}{gko::\+as()}}, \doxymbox{\hyperlink{namespacegko_a7cb327baf9ca9018d06fa5554464d29d}{gko::\+convert\+\_\+to()}}, \doxymbox{\hyperlink{classgko_1_1Executor_a8050a118e6ac312a768ec56d3d3aae20}{gko::\+\+Executor::\+copy\+\_\+from()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Diagonal_a35de90f46460a480ccb780b17ac5d1d7}{gko::\+matrix::\+\+Diagonal$<$ Value\+Type $>$::\+inverse\+\_\+apply()}}, \doxymbox{\hyperlink{classgko_1_1PolymorphicObject_a6729df9a3d3ed70ec5565568f03847de}{gko::\+\+Polymorphic\+Object::\+move\+\_\+from()}}, \doxymbox{\hyperlink{namespacegko_a6fcc3453bf500454b56a5f2f196b871c}{gko::\+move\+\_\+to()}}, \doxymbox{\hyperlink{classgko_1_1ptr__param_af32213ae7b8ded4b855c0a1f5168e97c}{ptr\+\_\+param()}}, \doxymbox{\hyperlink{classgko_1_1ptr__param_a63e69e923e5132252dd542e497e6141d}{ptr\+\_\+param()}}, \doxymbox{\hyperlink{classgko_1_1ptr__param_a5edbc2e180229108b91d083a7a3aa017}{ptr\+\_\+param()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Diagonal_a1b0ac09acf678b127602191f20477cdc}{gko::\+matrix::\+\+Diagonal$<$ Value\+Type $>$::\+rapply()}}, and \doxymbox{\hyperlink{classgko_1_1log_1_1Loggable_a5de4092a74cf04f30f13636d49aaec8b}{gko::\+log::\+\+Loggable::\+remove\+\_\+logger()}}.

\Hypertarget{classgko_1_1ptr__param_afddb8ecadee059e806589ac4c3f27c56}\index{gko::ptr\_param$<$ T $>$@{gko::ptr\_param$<$ T $>$}!operator bool@{operator bool}}
\index{operator bool@{operator bool}!gko::ptr\_param$<$ T $>$@{gko::ptr\_param$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{operator bool()}{operator bool()}}
{\footnotesize\ttfamily \label{classgko_1_1ptr__param_afddb8ecadee059e806589ac4c3f27c56} 
template$<$typename T$>$ \\
\doxymbox{\hyperlink{classgko_1_1ptr__param}{gko::\+ptr\+\_\+param}}$<$ T $>$::\+operator bool (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}}

\begin{DoxyReturn}{Returns}
true iff the underlying pointer is non-\/null. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1ptr__param_a195e6ac4608338a9eceb934a90e249df}\index{gko::ptr\_param$<$ T $>$@{gko::ptr\_param$<$ T $>$}!operator\texorpdfstring{$\ast$}{*}@{operator\texorpdfstring{$\ast$}{*}}}
\index{operator\texorpdfstring{$\ast$}{*}@{operator\texorpdfstring{$\ast$}{*}}!gko::ptr\_param$<$ T $>$@{gko::ptr\_param$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{operator\texorpdfstring{$\ast$}{*}()}{operator*()}}
{\footnotesize\ttfamily \label{classgko_1_1ptr__param_a195e6ac4608338a9eceb934a90e249df} 
template$<$typename T$>$ \\
T \& \doxymbox{\hyperlink{classgko_1_1ptr__param}{gko::\+ptr\+\_\+param}}$<$ T $>$::\+operator\texorpdfstring{$\ast$}{*} (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\begin{DoxyReturn}{Returns}
a reference to the underlying pointee. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1ptr__param_adf0aa137dc65b34a4206cd772d51792d}\index{gko::ptr\_param$<$ T $>$@{gko::ptr\_param$<$ T $>$}!operator-\/$>$@{operator-\/$>$}}
\index{operator-\/$>$@{operator-\/$>$}!gko::ptr\_param$<$ T $>$@{gko::ptr\_param$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$()}{operator->()}}
{\footnotesize\ttfamily \label{classgko_1_1ptr__param_adf0aa137dc65b34a4206cd772d51792d} 
template$<$typename T$>$ \\
T \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1ptr__param}{gko::\+ptr\+\_\+param}}$<$ T $>$::\+operator-\/$>$ (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\begin{DoxyReturn}{Returns}
the underlying pointer. 
\end{DoxyReturn}


The documentation for this class was generated from the following file:\+\begin{DoxyCompactItemize}
\item 
ginkgo/\+core/\+base/\+utils\+\_\+helper.\+hpp\end{DoxyCompactItemize}
