\section{Program\+Doc Class Reference}
\label{classmlpack_1_1util_1_1ProgramDoc}\index{Program\+Doc@{Program\+Doc}}


A static object whose constructor registers program documentation with the \doxyref{C\+LI}{p.}{classmlpack_1_1CLI} class.  


\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\textbf{ Program\+Doc} (const std\+::string \textbf{ program\+Name}, const std\+::string \textbf{ short\+Documentation}, const std\+::function$<$ std\+::string()$>$ \textbf{ documentation}, const std\+::vector$<$ std\+::pair$<$ std\+::string, std\+::string $>$$>$ \textbf{ see\+Also})
\begin{DoxyCompactList}\small\item\em Construct a \doxyref{Program\+Doc}{p.}{classmlpack_1_1util_1_1ProgramDoc} object. \end{DoxyCompactList}\item 
\textbf{ Program\+Doc} ()
\begin{DoxyCompactList}\small\item\em Construct an empty \doxyref{Program\+Doc}{p.}{classmlpack_1_1util_1_1ProgramDoc} object. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
std\+::function$<$ std\+::string()$>$ \textbf{ documentation}
\begin{DoxyCompactList}\small\item\em Documentation for what the program does. \end{DoxyCompactList}\item 
std\+::string \textbf{ program\+Name}
\begin{DoxyCompactList}\small\item\em The name of the program. \end{DoxyCompactList}\item 
std\+::vector$<$ std\+::pair$<$ std\+::string, std\+::string $>$ $>$ \textbf{ see\+Also}
\begin{DoxyCompactList}\small\item\em Set of see also information. \end{DoxyCompactList}\item 
std\+::string \textbf{ short\+Documentation}
\begin{DoxyCompactList}\small\item\em The short documentation for the program. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
A static object whose constructor registers program documentation with the \doxyref{C\+LI}{p.}{classmlpack_1_1CLI} class. 

This should not be used outside of \doxyref{C\+LI}{p.}{classmlpack_1_1CLI} itself, and you should use the \doxyref{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+F\+O()}{p.}{param_8hpp_a855115a809785b9d23c6fad3d3d75a86} macro to declare these objects. Only one \doxyref{Program\+Doc}{p.}{classmlpack_1_1util_1_1ProgramDoc} object should ever exist.

\begin{DoxySeeAlso}{See also}
\doxyref{core/util/cli.\+hpp}{p.}{cli_8hpp}, \doxyref{mlpack\+::\+C\+LI}{p.}{classmlpack_1_1CLI} 
\end{DoxySeeAlso}


Definition at line 26 of file program\+\_\+doc.\+hpp.



\subsection{Constructor \& Destructor Documentation}
\mbox{\label{classmlpack_1_1util_1_1ProgramDoc_a36514de91503f03e0294c7f5af1b6146}} 
\index{mlpack\+::util\+::\+Program\+Doc@{mlpack\+::util\+::\+Program\+Doc}!Program\+Doc@{Program\+Doc}}
\index{Program\+Doc@{Program\+Doc}!mlpack\+::util\+::\+Program\+Doc@{mlpack\+::util\+::\+Program\+Doc}}
\subsubsection{Program\+Doc()\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \textbf{ Program\+Doc} (\begin{DoxyParamCaption}\item[{const std\+::string}]{program\+Name,  }\item[{const std\+::string}]{short\+Documentation,  }\item[{const std\+::function$<$ std\+::string()$>$}]{documentation,  }\item[{const std\+::vector$<$ std\+::pair$<$ std\+::string, std\+::string $>$$>$}]{see\+Also }\end{DoxyParamCaption})}



Construct a \doxyref{Program\+Doc}{p.}{classmlpack_1_1util_1_1ProgramDoc} object. 

When constructed, it will register itself with \doxyref{C\+LI}{p.}{classmlpack_1_1CLI}, and when the user calls --help (or whatever the option is named for the given binding type), the given function that returns a std\+::string will be returned.


\begin{DoxyParams}{Parameters}
{\em program\+Name} & Short string representing the name of the program. \\
\hline
{\em short\+Documentation} & A short two-\/sentence description of the program, what it does, and what it is useful for. \\
\hline
{\em documentation} & Long string containing documentation on how to use the program and what it is. No newline characters are necessary; this is taken care of by \doxyref{C\+LI}{p.}{classmlpack_1_1CLI} later. \\
\hline
{\em see\+Also} & A set of pairs of strings with useful \char`\"{}see also\char`\"{} information; each pair is $<$description, url$>$. \\
\hline
\end{DoxyParams}
\mbox{\label{classmlpack_1_1util_1_1ProgramDoc_a81c9ab067c27729a4b9fc88f54b97879}} 
\index{mlpack\+::util\+::\+Program\+Doc@{mlpack\+::util\+::\+Program\+Doc}!Program\+Doc@{Program\+Doc}}
\index{Program\+Doc@{Program\+Doc}!mlpack\+::util\+::\+Program\+Doc@{mlpack\+::util\+::\+Program\+Doc}}
\subsubsection{Program\+Doc()\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \textbf{ Program\+Doc} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Construct an empty \doxyref{Program\+Doc}{p.}{classmlpack_1_1util_1_1ProgramDoc} object. 

(This is not meant to be used!) 

\subsection{Member Data Documentation}
\mbox{\label{classmlpack_1_1util_1_1ProgramDoc_a034af7564ea1d3a2b96c670a21cb307e}} 
\index{mlpack\+::util\+::\+Program\+Doc@{mlpack\+::util\+::\+Program\+Doc}!documentation@{documentation}}
\index{documentation@{documentation}!mlpack\+::util\+::\+Program\+Doc@{mlpack\+::util\+::\+Program\+Doc}}
\subsubsection{documentation}
{\footnotesize\ttfamily std\+::function$<$std\+::string()$>$ documentation}



Documentation for what the program does. 



Definition at line 59 of file program\+\_\+doc.\+hpp.

\mbox{\label{classmlpack_1_1util_1_1ProgramDoc_a24d855d329269931b59bdf1b36706a88}} 
\index{mlpack\+::util\+::\+Program\+Doc@{mlpack\+::util\+::\+Program\+Doc}!program\+Name@{program\+Name}}
\index{program\+Name@{program\+Name}!mlpack\+::util\+::\+Program\+Doc@{mlpack\+::util\+::\+Program\+Doc}}
\subsubsection{program\+Name}
{\footnotesize\ttfamily std\+::string program\+Name}



The name of the program. 



Definition at line 55 of file program\+\_\+doc.\+hpp.

\mbox{\label{classmlpack_1_1util_1_1ProgramDoc_afe5093e1898efe46d8079526cfe632a9}} 
\index{mlpack\+::util\+::\+Program\+Doc@{mlpack\+::util\+::\+Program\+Doc}!see\+Also@{see\+Also}}
\index{see\+Also@{see\+Also}!mlpack\+::util\+::\+Program\+Doc@{mlpack\+::util\+::\+Program\+Doc}}
\subsubsection{see\+Also}
{\footnotesize\ttfamily std\+::vector$<$std\+::pair$<$std\+::string, std\+::string$>$ $>$ see\+Also}



Set of see also information. 



Definition at line 61 of file program\+\_\+doc.\+hpp.

\mbox{\label{classmlpack_1_1util_1_1ProgramDoc_afcecf57fc2d69f024be1246ca217d877}} 
\index{mlpack\+::util\+::\+Program\+Doc@{mlpack\+::util\+::\+Program\+Doc}!short\+Documentation@{short\+Documentation}}
\index{short\+Documentation@{short\+Documentation}!mlpack\+::util\+::\+Program\+Doc@{mlpack\+::util\+::\+Program\+Doc}}
\subsubsection{short\+Documentation}
{\footnotesize\ttfamily std\+::string short\+Documentation}



The short documentation for the program. 



Definition at line 57 of file program\+\_\+doc.\+hpp.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
/var/www/mlpack.\+ratml.\+org/mlpack.\+org/\+\_\+src/mlpack-\/3.\+3.\+2/src/mlpack/core/util/\textbf{ program\+\_\+doc.\+hpp}\end{DoxyCompactItemize}
