\doxysection{gko::\+deferred\+\_\+factory\+\_\+parameter\texorpdfstring{$<$}{<} Factory\+Type \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classgko_1_1deferred__factory__parameter}{}\label{classgko_1_1deferred__factory__parameter}\index{gko::deferred\_factory\_parameter$<$ FactoryType $>$@{gko::deferred\_factory\_parameter$<$ FactoryType $>$}}


Represents a factory parameter of factory type that can either initialized by a pre-\/existing factory or by passing in a factory\+\_\+parameters object whose {\ttfamily .on(exec)} will be called to instantiate a factory.  




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



Inheritance diagram for gko::\+deferred\+\_\+factory\+\_\+parameter\texorpdfstring{$<$}{<} Factory\+Type \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classgko_1_1deferred__factory__parameter__inherit__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1deferred__factory__parameter_ab069248c433a008756f139e1f5a42294}\label{classgko_1_1deferred__factory__parameter_ab069248c433a008756f139e1f5a42294} 
{\bfseries deferred\+\_\+factory\+\_\+parameter} ()=default
\begin{DoxyCompactList}\small\item\em Creates an empty deferred factory parameter. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1deferred__factory__parameter_ad530c7aa9eee77cedf14844bff234b03}\label{classgko_1_1deferred__factory__parameter_ad530c7aa9eee77cedf14844bff234b03} 
{\bfseries deferred\+\_\+factory\+\_\+parameter} (std::\+nullptr\+\_\+t)
\begin{DoxyCompactList}\small\item\em Creates a deferred factory parameter returning a nullptr. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1deferred__factory__parameter_a9559142ba494fceaf016a1bdc10c98c6}\label{classgko_1_1deferred__factory__parameter_a9559142ba494fceaf016a1bdc10c98c6} 
{\footnotesize template$<$typename Concrete\+Factory\+Type, std::\+enable\+\_\+if\+\_\+t$<$ detail::\+is\+\_\+pointer\+\_\+convertible$<$ Concrete\+Factory\+Type, Factory\+Type $>$::\+value $>$ \texorpdfstring{$\ast$}{*} = nullptr$>$ }\\{\bfseries deferred\+\_\+factory\+\_\+parameter} (std::\+shared\+\_\+ptr$<$ Concrete\+Factory\+Type $>$ factory)
\begin{DoxyCompactList}\small\item\em Creates a deferred factory parameter from a preexisting factory with shared ownership. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1deferred__factory__parameter_ade191bb3a9d7ffc65392b87233d63098}\label{classgko_1_1deferred__factory__parameter_ade191bb3a9d7ffc65392b87233d63098} 
{\footnotesize template$<$typename Concrete\+Factory\+Type, typename Deleter, std::\+enable\+\_\+if\+\_\+t$<$ detail::\+is\+\_\+pointer\+\_\+convertible$<$ Concrete\+Factory\+Type, Factory\+Type $>$::\+value $>$ \texorpdfstring{$\ast$}{*} = nullptr$>$ }\\{\bfseries deferred\+\_\+factory\+\_\+parameter} (std::\+unique\+\_\+ptr$<$ Concrete\+Factory\+Type, Deleter $>$ factory)
\begin{DoxyCompactList}\small\item\em Creates a deferred factory parameter by taking ownership of a preexisting factory with unique ownership. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Parameters\+Type, typename U = decltype(std::\+declval$<$\+Parameters\+Type$>$().\+on(                  std::\+shared\+\_\+ptr$<$const Executor$>$\{\})), std::\+enable\+\_\+if\+\_\+t$<$ detail::\+is\+\_\+pointer\+\_\+convertible$<$ typename U::\+element\+\_\+type, Factory\+Type $>$::\+value $>$ \texorpdfstring{$\ast$}{*} = nullptr$>$ }\\\doxymbox{\hyperlink{classgko_1_1deferred__factory__parameter_af89a9f8423e6727573029fa0c881b6d1}{deferred\+\_\+factory\+\_\+parameter}} (Parameters\+Type parameters)
\begin{DoxyCompactList}\small\item\em Creates a deferred factory parameter object from a factory\+\_\+parameters-\/like object. \end{DoxyCompactList}\item 
std::\+shared\+\_\+ptr$<$ Factory\+Type $>$ \doxymbox{\hyperlink{classgko_1_1deferred__factory__parameter_a0abc325f946a7c803735454e00b030a6}{on}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec) const
\begin{DoxyCompactList}\small\item\em Instantiates the deferred parameter into an actual factory. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1deferred__factory__parameter_a888d64b7a719796fe7ca15518a71b486}\label{classgko_1_1deferred__factory__parameter_a888d64b7a719796fe7ca15518a71b486} 
bool {\bfseries is\+\_\+empty} () const
\begin{DoxyCompactList}\small\item\em Returns true iff the parameter is empty. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Factory\+Type$>$\newline
class gko::\+deferred\+\_\+factory\+\_\+parameter$<$ Factory\+Type $>$}
Represents a factory parameter of factory type that can either initialized by a pre-\/existing factory or by passing in a factory\+\_\+parameters object whose {\ttfamily .on(exec)} will be called to instantiate a factory. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Factory\+Type} & the type of factory that can be instantiated from this object. \\
\hline
\end{DoxyTemplParams}


\label{doc-constructors}
\Hypertarget{classgko_1_1deferred__factory__parameter_doc-constructors}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classgko_1_1deferred__factory__parameter_af89a9f8423e6727573029fa0c881b6d1}\index{gko::deferred\_factory\_parameter$<$ FactoryType $>$@{gko::deferred\_factory\_parameter$<$ FactoryType $>$}!deferred\_factory\_parameter@{deferred\_factory\_parameter}}
\index{deferred\_factory\_parameter@{deferred\_factory\_parameter}!gko::deferred\_factory\_parameter$<$ FactoryType $>$@{gko::deferred\_factory\_parameter$<$ FactoryType $>$}}
\doxysubsubsection{\texorpdfstring{deferred\_factory\_parameter()}{deferred\_factory\_parameter()}}
{\footnotesize\ttfamily \label{classgko_1_1deferred__factory__parameter_af89a9f8423e6727573029fa0c881b6d1} 
template$<$typename Factory\+Type$>$ \\
template$<$typename Parameters\+Type, typename U = decltype(std::\+declval$<$\+Parameters\+Type$>$().\+on(                  std::\+shared\+\_\+ptr$<$const Executor$>$\{\})), std::\+enable\+\_\+if\+\_\+t$<$ detail::\+is\+\_\+pointer\+\_\+convertible$<$ typename U::\+element\+\_\+type, Factory\+Type $>$::\+value $>$ \texorpdfstring{$\ast$}{*} = nullptr$>$ \\
\doxymbox{\hyperlink{classgko_1_1deferred__factory__parameter}{gko::\+deferred\+\_\+factory\+\_\+parameter}}$<$ Factory\+Type $>$::\+deferred\+\_\+factory\+\_\+parameter (\begin{DoxyParamCaption}\item[{Parameters\+Type}]{parameters}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Creates a deferred factory parameter object from a factory\+\_\+parameters-\/like object. 

To instantiate the actual factory, the parameter\textquotesingle{}s {\ttfamily .on(exec)} function will be called. 

\label{doc-func-members}
\Hypertarget{classgko_1_1deferred__factory__parameter_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classgko_1_1deferred__factory__parameter_a0abc325f946a7c803735454e00b030a6}\index{gko::deferred\_factory\_parameter$<$ FactoryType $>$@{gko::deferred\_factory\_parameter$<$ FactoryType $>$}!on@{on}}
\index{on@{on}!gko::deferred\_factory\_parameter$<$ FactoryType $>$@{gko::deferred\_factory\_parameter$<$ FactoryType $>$}}
\doxysubsubsection{\texorpdfstring{on()}{on()}}
{\footnotesize\ttfamily \label{classgko_1_1deferred__factory__parameter_a0abc325f946a7c803735454e00b030a6} 
template$<$typename Factory\+Type$>$ \\
std::\+shared\+\_\+ptr$<$ Factory\+Type $>$ \doxymbox{\hyperlink{classgko_1_1deferred__factory__parameter}{gko::\+deferred\+\_\+factory\+\_\+parameter}}$<$ Factory\+Type $>$::\+on (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Instantiates the deferred parameter into an actual factory. 

This will throw if the deferred factory parameter is empty. 

References \doxymbox{\hyperlink{classgko_1_1deferred__factory__parameter_a888d64b7a719796fe7ca15518a71b486}{is\+\_\+empty()}}.



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