\hypertarget{classeo_invalidate_quad_op}{}\doxysection{eo\+Invalidate\+Quad\+Op$<$ E\+OT $>$ Class Template Reference}
\label{classeo_invalidate_quad_op}\index{eoInvalidateQuadOp$<$ EOT $>$@{eoInvalidateQuadOp$<$ EOT $>$}}


{\ttfamily \#include $<$eo\+Invalidate\+Ops.\+h$>$}



Inheritance diagram for eo\+Invalidate\+Quad\+Op$<$ E\+OT $>$\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classeo_invalidate_quad_op__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for eo\+Invalidate\+Quad\+Op$<$ E\+OT $>$\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classeo_invalidate_quad_op__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classeo_invalidate_quad_op_a7546286f0386e3443277cd9537c4d848}\label{classeo_invalidate_quad_op_a7546286f0386e3443277cd9537c4d848}} 
{\bfseries eo\+Invalidate\+Quad\+Op} (\mbox{\hyperlink{classeo_quad_op}{eo\+Quad\+Op}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+op)
\item 
\mbox{\Hypertarget{classeo_invalidate_quad_op_a7907819a9b73cc1b0a655a6481f2d85b}\label{classeo_invalidate_quad_op_a7907819a9b73cc1b0a655a6481f2d85b}} 
bool \mbox{\hyperlink{classeo_invalidate_quad_op_a7907819a9b73cc1b0a655a6481f2d85b}{operator()}} (\mbox{\hyperlink{struct_dummy}{E\+OT}} \&\+\_\+eo1, \mbox{\hyperlink{struct_dummy}{E\+OT}} \&\+\_\+eo2)
\begin{DoxyCompactList}\small\item\em The pure virtual function that needs to be implemented by the subclass. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classeo_invalidate_quad_op_a7546286f0386e3443277cd9537c4d848}\label{classeo_invalidate_quad_op_a7546286f0386e3443277cd9537c4d848}} 
{\bfseries eo\+Invalidate\+Quad\+Op} (\mbox{\hyperlink{classeo_quad_op}{eo\+Quad\+Op}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+op)
\item 
\mbox{\Hypertarget{classeo_invalidate_quad_op_a7907819a9b73cc1b0a655a6481f2d85b}\label{classeo_invalidate_quad_op_a7907819a9b73cc1b0a655a6481f2d85b}} 
bool \mbox{\hyperlink{classeo_invalidate_quad_op_a7907819a9b73cc1b0a655a6481f2d85b}{operator()}} (\mbox{\hyperlink{struct_dummy}{E\+OT}} \&\+\_\+eo1, \mbox{\hyperlink{struct_dummy}{E\+OT}} \&\+\_\+eo2)
\begin{DoxyCompactList}\small\item\em The pure virtual function that needs to be implemented by the subclass. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Additional Inherited Members}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$class E\+OT$>$\newline
class eo\+Invalidate\+Quad\+Op$<$ E\+O\+T $>$}

One of the invalidator operators. Use this one as a \textquotesingle{}hat\textquotesingle{} on an operator that is defined to work on a generic datatype. This functor will then check the return type of the operator and invalidate the fitness of the individual.

This functor is used in algorithms that work with straight \mbox{\hyperlink{classeo_mon_op}{eo\+Mon\+Op}}, \mbox{\hyperlink{classeo_bin_op}{eo\+Bin\+Op}} or \mbox{\hyperlink{classeo_quad_op}{eo\+Quad\+Op}} operators, for instance \mbox{\hyperlink{classeo_s_g_a}{eo\+S\+GA}}. Note that \mbox{\hyperlink{classeo_gen_op}{eo\+Gen\+Op}} derived operators generally do invalidate the fitness of the objects they have changed.

Return value means \char`\"{}\+Has\+\_\+\+Changed\char`\"{} and not \char`\"{}\+Needs\+\_\+\+To\+\_\+\+Be\+\_\+\+Invalidated\char`\"{} as successive invalidation are not really a problem 

The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
deprecated/eo/src/eo\+Invalidate\+Ops.\+h\end{DoxyCompactItemize}
