\hypertarget{classSingleton}{\section{\-Singleton$<$ \-T $>$ \-Class \-Template \-Reference}
\label{classSingleton}\index{\-Singleton$<$ T $>$@{\-Singleton$<$ T $>$}}
}


{\ttfamily \#include $<$\-Singleton.\-h$>$}

\subsection*{\-Static \-Public \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
static \-T \& \hyperlink{classSingleton_a131e87528259529400d58b6df5d9743c}{\-Instance} ()
\end{DoxyCompactItemize}
\subsection*{\-Protected \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classSingleton_a923b995920da9c06590adb170ab2f890}{\-Singleton} ()
\item 
\hyperlink{classSingleton_ac6e7af82cba33f561bd64e5e0243e7f8}{$\sim$\-Singleton} ()
\end{DoxyCompactItemize}
\subsection*{\-Private \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classSingleton_a363d3f7d5276e6ee74966d9606df2086}{\-Singleton} (const \hyperlink{classSingleton}{\-Singleton} \&)
\item 
\hyperlink{classSingleton}{\-Singleton} \& \hyperlink{classSingleton_a90761b9486d76162ab59c871b5cc030f}{operator=} (const \hyperlink{classSingleton}{\-Singleton} \&)
\end{DoxyCompactItemize}


\subsection{\-Detailed \-Description}
\subsubsection*{template$<$class T$>$class Singleton$<$ T $>$}



\-Definition at line 4 of file \-Singleton.\-h.



\subsection{\-Constructor \& \-Destructor \-Documentation}
\hypertarget{classSingleton_a923b995920da9c06590adb170ab2f890}{\index{\-Singleton@{\-Singleton}!\-Singleton@{\-Singleton}}
\index{\-Singleton@{\-Singleton}!Singleton@{\-Singleton}}
\subsubsection[{\-Singleton}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf \-Singleton}$<$ \-T $>$\-::{\bf \-Singleton} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected\mbox{]}}}}\label{classSingleton_a923b995920da9c06590adb170ab2f890}
\hypertarget{classSingleton_ac6e7af82cba33f561bd64e5e0243e7f8}{\index{\-Singleton@{\-Singleton}!$\sim$\-Singleton@{$\sim$\-Singleton}}
\index{$\sim$\-Singleton@{$\sim$\-Singleton}!Singleton@{\-Singleton}}
\subsubsection[{$\sim$\-Singleton}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf \-Singleton}$<$ \-T $>$\-::$\sim${\bf \-Singleton} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected\mbox{]}}}}\label{classSingleton_ac6e7af82cba33f561bd64e5e0243e7f8}
\hypertarget{classSingleton_a363d3f7d5276e6ee74966d9606df2086}{\index{\-Singleton@{\-Singleton}!\-Singleton@{\-Singleton}}
\index{\-Singleton@{\-Singleton}!Singleton@{\-Singleton}}
\subsubsection[{\-Singleton}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf \-Singleton}$<$ \-T $>$\-::{\bf \-Singleton} (
\begin{DoxyParamCaption}
\item[{const {\bf \-Singleton}$<$ \-T $>$ \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}\label{classSingleton_a363d3f7d5276e6ee74966d9606df2086}


\subsection{\-Member \-Function \-Documentation}
\hypertarget{classSingleton_a131e87528259529400d58b6df5d9743c}{\index{\-Singleton@{\-Singleton}!\-Instance@{\-Instance}}
\index{\-Instance@{\-Instance}!Singleton@{\-Singleton}}
\subsubsection[{\-Instance}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ static \-T\& {\bf \-Singleton}$<$ \-T $>$\-::{\bf \-Instance} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}\label{classSingleton_a131e87528259529400d58b6df5d9743c}


\-Definition at line 7 of file \-Singleton.\-h.



\-Referenced by \-Terrain\-Anaysis\-Class\-::analyse\-Bases\-And\-Terrain(), \-Building\-Placer\-Class\-::base\-To\-Build\-At\-Order(), \-Task\-Manager\-Class\-::build(), \-Building\-Placer\-Class\-::building\-Location\-To\-Tile(), \-Building\-Placer\-Class\-::calculate\-Reservations(), \-Build\-Order\-Manager\-Class\-::change\-Current\-Build(), \-Scout\-Data\-Class\-::check\-Positions(), \-Terrain\-Anaysis\-Class\-::create\-Bases(), \-Path\-Finder\-Class\-::\-Create\-Cheap\-Walk\-Path(), \-Terrain\-Anaysis\-Class\-::create\-Regions(), \-Squad\-Manager\-Class\-::create\-Squad(), \-Macro\-Item\-::create\-Task(), \-Build\-Item\-::create\-Task(), \-Macro\-Manager\-Class\-::create\-Tech\-Items(), \-Unit\-Predictor\-Class\-::delete\-Prediction(), \-Unit\-Class\-::draw\-Unit\-Position(), \-Requirement\-::earliest\-Time(), \-Requirement\-::earliest\-Time\-For\-Type(), \-Requirement\-::earliest\-Unit\-Time(), \-Building\-Placer\-Class\-::finalise\-Reservations(), \-Morph\-Task\-::free\-Resources(), \-Train\-Task\-::free\-Resources(), \-Construction\-Task\-::free\-Resources(), \-Unit\-Class\-::get\-Build\-Unit(), \-Building\-Placer\-Class\-::get\-Expand\-Location(), \-Map\-Helper\-::get\-Ground\-Distance(), \-Unit\-Group\-::get\-Majority\-Region(), \-Worker\-Scout\-Task\-::get\-New\-Data(), \-Task\-Manager\-Class\-::get\-Priority\-List(), \-Unit\-Class\-::get\-Target(), \-Wall\-Tracker\-Class\-::get\-Wall\-Position(), \-Tech\-Task\-::give\-Unit(), \-Upgrade\-Task\-::give\-Unit(), \-Macro\-Item\-::in\-Progress(), \-Building\-Placer\-Class\-::is\-Addon\-Builder(), \-Region\-Class\-::is\-Connected(), \-Building\-Placer\-Class\-::is\-Location\-Buildable(), \-Building\-Placer\-Class\-::is\-Location\-Non\-Blocking(), \-Unit\-Class\-::is\-Stasised(), \-Build\-Tile\-Path\-::is\-Still\-Valid(), \-Building\-Placer\-Class\-::is\-Tile\-Blocked(), \-Unit\-Class\-::is\-Under\-Storm(), \-Build\-Order\-Manager\-Class\-::\-Load\-Other\-Builds(), \-Wall\-Tracker\-Class\-::on\-Begin(), \-Blocked\-Path\-Manager\-Class\-::on\-Begin(), \-Scout\-Manager\-Class\-::on\-Begin(), \-Border\-Tracker\-Class\-::on\-Begin(), \-Macro\-Manager\-Class\-::on\-Begin(), \-Squad\-Manager\-Class\-::on\-Change\-Build(), \-Macro\-Manager\-Class\-::on\-Change\-Build(), \-Unit\-Tracker\-Class\-::on\-Destroy(), \-Unit\-Tracker\-Class\-::on\-Discover(), \-Skynet\-::on\-Frame(), \-Unit\-Tracker\-Class\-::on\-Morph\-Renegade(), \-Skynet\-::on\-Player\-Left(), \-Unit\-Tracker\-Class\-::on\-Unit\-Discover(), \-Walk\-In\-Region\-Comp\-::operator()(), \-Default\-Tile\-Test\-::operator()(), \-Flee\-Tile\-Test\-::operator()(), \-Build\-Location\-Compare\-::operator()(), \-Region\-Choke\-Compare\-::operator()(), \-Condition\-::passes\-Value(), \-Player\-Tracker\-Class\-::player\-Unit\-Count(), \-Worker\-Scout\-Task\-::pre\-Update(), \-Observer\-Scout\-Task\-::pre\-Update(), \-Border\-Tracker\-Class\-::recalculate\-Borders(), \-Building\-Placer\-Class\-::remember\-Best\-Expand\-Location(), \-Task\-Manager\-Class\-::research(), \-Requirement\-::reserve(), \-Construction\-Task\-::reserve\-Location(), \-Morph\-Task\-::reserve\-Resources(), \-Train\-Task\-::reserve\-Resources(), \-Construction\-Task\-::reserve\-Resources(), \-Resource\-Tracker\-Class\-::reset(), \-Upgrade\-Task\-::return\-Unit(), \-Tech\-Task\-::return\-Unit(), \-Worker\-Scout\-Task\-::return\-Unit(), \-Observer\-Scout\-Task\-::return\-Unit(), \-Unit\-Predictor\-Class\-::save\-Prediction(), \-Unit\-Tracker\-Class\-::select\-All\-Enemy(), \-Reserved\-Location\-Class\-::set\-Tile\-Position(), \-Reserved\-Location\-Class\-::should\-Free(), \-Detector\-Action\-::update(), \-Arbiter\-Action\-::update(), \-Basic\-Unit\-Action\-::update(), \-Arcon\-Zealot\-Kill\-Un\-Detected\-::update(), \-Mine\-Drag\-Action\-::update(), \-A\-O\-E\-Threat\-Tracker\-Class\-::update(), \-Psi\-Storm\-Action\-::update(), \-Expansion\-Manager\-Class\-::update(), \-Task\-Pump\-::update(), \-Supply\-Manager\-Class\-::update(), \-Unit\-Information\-Class\-::update(), \-Resource\-Manager\-Class\-::update(), \-Squad\-Manager\-Class\-::update(), \-Player\-Tracker\-Class\-::update(), \-Blocked\-Path\-Manager\-Class\-::update(), \-Border\-Tracker\-Class\-::update(), \-Scout\-Manager\-Class\-::update(), \-Task\-Manager\-Class\-::update(), \-Upgrade\-Task\-::update(), \-Tech\-Task\-::update(), \-Default\-Squad\-Task\-::update(), \-Game\-Progress\-Detection\-Class\-::update(), \-Worker\-Scout\-Task\-::update(), \-Base\-Class\-::update(), \-Reserved\-Location\-Class\-::update(), \-Macro\-Manager\-Class\-::update(), \-Expansion\-Manager\-Class\-::update\-Defense(), \-Expansion\-Manager\-Class\-::update\-Expands(), \-Macro\-Manager\-Class\-::update\-Observer\-Production(), \-Scout\-Manager\-Class\-::update\-Observer\-Scouts(), \-Macro\-Manager\-Class\-::update\-Production\-Production(), \-Expansion\-Manager\-Class\-::update\-Refineries(), \-Default\-Squad\-Task\-::update\-Requirements(), \-Macro\-Manager\-Class\-::update\-Unit\-Production(), \-Scout\-Manager\-Class\-::update\-Worker\-Scouts(), \-Task\-Manager\-Class\-::upgrade(), and \-Gather\-Task\-::worker\-Priority().


\begin{DoxyCode}
        {
                static T instance;
                return instance;
        }
\end{DoxyCode}
\hypertarget{classSingleton_a90761b9486d76162ab59c871b5cc030f}{\index{\-Singleton@{\-Singleton}!operator=@{operator=}}
\index{operator=@{operator=}!Singleton@{\-Singleton}}
\subsubsection[{operator=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf \-Singleton}\& {\bf \-Singleton}$<$ \-T $>$\-::operator= (
\begin{DoxyParamCaption}
\item[{const {\bf \-Singleton}$<$ \-T $>$ \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}\label{classSingleton_a90761b9486d76162ab59c871b5cc030f}


\-The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
\item 
\-Skynet/\-Skynet/\hyperlink{Singleton_8h}{\-Singleton.\-h}\end{DoxyCompactItemize}
