\documentclass[a4paper,11pt]{report}
\input{config.tex}



\begin{document}

\begin{center}

{\Large \BBTK}
\vspace{1cm}

{\Huge Developers' Guide}
\vspace{1cm}

\bbtk version \bbtkVersion
\vspace{0.5cm}


Last modified on : September 16, 2008 \\
Generated on : \today 
\vspace{0.5cm}
\end{center}
\begin{center}
Eduardo Davila, Laurent Guigues, Jean-Pierre Roux 
\end{center}
\begin{center}
CREATIS-LRMN, Centre de Recherche en Imagerie Medicale \\ CNRS UMR 5220, INSERM U620\\
INSA Lyon\\
Universit\'e Claude-Bernard Lyon 1
\end{center}



% ==========================================
\tableofcontents
% ==========================================

\chapter{Introduction}


\chapter{Misc}

\section{Displaying messages}

\begin{verbatim}
bbtkMessage("Kind",level,"message "<<"to "<<" display : i="<<i<<std::endl);
bbtkDebugMessage("Kind",level,"message "<<"to "<<" display : i="<<i<<std::endl);
\end{verbatim}

\section{Types and RTTI}



In \bbtk the class conveying the information on a type is 
\begin{verbatim}
bbtk::TypeInfo
\end{verbatim}
which is simply a typedef on 
\begin{verbatim}
const std::type_info&
\end{verbatim}
Remember that all constructors of the std::type\_info class are private, 
hence objects can only be created by the operator \texttt{typeid} 
which returns a const reference on a type\_info. 
Hence the \bbtk type TypeInfo conveys that const reference 
and cannot be itself referenced. 
Any function or method which takes or returns a TypeInfo must take 
or return it \emph{by value} (see e.g. the TypeName function below).
To print the name of a type use one of the template functions 
\begin{verbatim}
template <class T> std::string TypeName();
template <class T> std::string TypeName(const T&);
template <class T> std::string TypeName(bbtk::TypeInfo);
\end{verbatim}


\begin{verbatim}
BBTK_DEFINE_HUMAN_READABLE_TYPE_NAME(std::string,"string");
\end{verbatim}

\end{document} 
