paradiseo/Doxygen doc/latex/classeo_forge_operator.tex
aaziz-alaoui e79679b3c9 adding the problem configuration interface to irace interface
problem_config_mapping created
2020-10-01 15:55:30 +02:00

103 lines
4.8 KiB
TeX

\hypertarget{classeo_forge_operator}{}\doxysection{eo\+Forge\+Operator$<$ Itf, Op, Args $>$ Class Template Reference}
\label{classeo_forge_operator}\index{eoForgeOperator$<$ Itf, Op, Args $>$@{eoForgeOperator$<$ Itf, Op, Args $>$}}
{\ttfamily \#include $<$eo\+Forge.\+h$>$}
Inheritance diagram for eo\+Forge\+Operator$<$ Itf, Op, Args $>$\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=212pt]{classeo_forge_operator__inherit__graph}
\end{center}
\end{figure}
Collaboration diagram for eo\+Forge\+Operator$<$ Itf, Op, Args $>$\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=212pt]{classeo_forge_operator__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\Hypertarget{classeo_forge_operator_a4932460a0c35c5da90a99df827b71fae}\label{classeo_forge_operator_a4932460a0c35c5da90a99df827b71fae}}
{\footnotesize template$<$class ... Args2$>$ }\\{\bfseries eo\+Forge\+Operator} (Args2... args)
\item
Itf \& \mbox{\hyperlink{classeo_forge_operator_aad5c5afc7eefb1b6a5287aa198476a94}{instantiate}} (bool no\+\_\+cache=true)
\end{DoxyCompactItemize}
\doxysubsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item
\mbox{\Hypertarget{classeo_forge_operator_a5d20a93b86f2fa3d1f4b8de1109ffaca}\label{classeo_forge_operator_a5d20a93b86f2fa3d1f4b8de1109ffaca}}
std\+::tuple$<$ Args... $>$ {\bfseries \+\_\+args}
\item
\mbox{\Hypertarget{classeo_forge_operator_a5a6184f241753ee6a0f2e5bff6ebfd8c}\label{classeo_forge_operator_a5a6184f241753ee6a0f2e5bff6ebfd8c}}
Itf $\ast$ {\bfseries \+\_\+instantiated}
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
\subsubsection*{template$<$class Itf, class Op, typename... Args$>$\newline
class eo\+Forge\+Operator$<$ Itf, Op, Args $>$}
This \char`\"{}\+Forge\char`\"{} can defer the instantiation of an \mbox{\hyperlink{class_e_o}{EO}}\textquotesingle{}s operator.
It allows to decouple the constructor\textquotesingle{}s parameters setup from its actual call. You can declare a parametrized operator at a given time, then actually instantiate it (with the given interface) at another time.
This allows for creating containers of pre-\/parametrized operators (\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{classeo_forge_vector}{eo\+Forge\+Vector}}).
\end{DoxySeeAlso}
\begin{DoxyWarning}{Warning}
When passing a reference (as it is often the case within Paradis\+EO), it is M\+A\+N\+D\+A\+T\+O\+RY to wrap it in {\ttfamily std\+::ref}, or else it will default to use copy. This is is a source of bug which your compiler will to detect and that would disable any link between operators.
\end{DoxyWarning}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{classeo_forge_operator}{eoForgeOperator<eoselect<EOT>}},\mbox{\hyperlink{classeo_rank_mu_select}{eoRankMuSelect<EOT>}}> forge(mu);}
\DoxyCodeLine{\textcolor{comment}{// \string^ desired \string^ to-\/be-\/instantiated \string^ operator's}}
\DoxyCodeLine{\textcolor{comment}{// interface operator parameters}}
\DoxyCodeLine{\textcolor{comment}{// Actual instantiation:}}
\DoxyCodeLine{\mbox{\hyperlink{classeo_select}{eoSelect<EOT>}}\& select = forge.instantiate();}
\end{DoxyCode}
\begin{DoxyWarning}{Warning}
You may want to enable instantiation cache to grab some performances. The default is set to disable the cache, because its use with operators which hold a state will lead to unwanted behaviour.
\end{DoxyWarning}
\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classeo_forge_operator_aad5c5afc7eefb1b6a5287aa198476a94}\label{classeo_forge_operator_aad5c5afc7eefb1b6a5287aa198476a94}}
\index{eoForgeOperator$<$ Itf, Op, Args $>$@{eoForgeOperator$<$ Itf, Op, Args $>$}!instantiate@{instantiate}}
\index{instantiate@{instantiate}!eoForgeOperator$<$ Itf, Op, Args $>$@{eoForgeOperator$<$ Itf, Op, Args $>$}}
\doxysubsubsection{\texorpdfstring{instantiate()}{instantiate()}}
{\footnotesize\ttfamily template$<$class Itf , class Op , typename... Args$>$ \\
Itf\& \mbox{\hyperlink{classeo_forge_operator}{eo\+Forge\+Operator}}$<$ Itf, Op, Args $>$\+::instantiate (\begin{DoxyParamCaption}\item[{bool}]{no\+\_\+cache = {\ttfamily true} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}
instantiate the managed operator class.
That is call its constructor with the set up arguments.
\begin{DoxyWarning}{Warning}
Do not enable cache with operators which hold a state.
\end{DoxyWarning}
\begin{DoxyParams}{Parameters}
{\em no\+\_\+cache} & If false, will enable caching previous instances. \\
\hline
\end{DoxyParams}
Implements \mbox{\hyperlink{classeo_forge_interface}{eo\+Forge\+Interface$<$ Itf $>$}}.
The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item
eo/src/eo\+Forge.\+h\end{DoxyCompactItemize}