\section{booster\+:\+:nowide Namespace Reference}
\label{namespacebooster_1_1nowide}\index{booster\+::nowide@{booster\+::nowide}}


This namespace includes implementation of basic S\+TL\textquotesingle{}s / S\+T\+D\+L\+Ib\textquotesingle{}s functions such that they accept U\+T\+F-\/8 strings. on Windows. Otherwise it is just an alias of std namespace (i.\+e. not on Windows)  


\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class {\bf bad\+\_\+utf}
\begin{DoxyCompactList}\small\item\em This exception is thrown if invalid U\+T\+F-\/8 or U\+T\+F-\/16 is given as input. \end{DoxyCompactList}\item 
class {\bf basic\+\_\+filebuf}
\item 
class {\bf basic\+\_\+filebuf$<$ char $>$}
\item 
class {\bf basic\+\_\+fstream}
\item 
class {\bf basic\+\_\+ifstream}
\item 
class {\bf basic\+\_\+ofstream}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef {\bf basic\+\_\+filebuf}$<$ char $>$ {\bf filebuf}
\item 
typedef {\bf basic\+\_\+ifstream}$<$ char $>$ {\bf ifstream}
\item 
typedef {\bf basic\+\_\+ofstream}$<$ char $>$ {\bf ofstream}
\item 
typedef {\bf basic\+\_\+fstream}$<$ char $>$ {\bf fstream}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
B\+O\+O\+S\+T\+E\+R\+\_\+\+A\+PI std\+::string {\bf convert} (wchar\+\_\+t const $\ast$s)
\item 
B\+O\+O\+S\+T\+E\+R\+\_\+\+A\+PI std\+::wstring {\bf convert} (char const $\ast$s)
\item 
std\+::string {\bf convert} (std\+::wstring const \&s)
\item 
std\+::wstring {\bf convert} (std\+::string const \&s)
\item 
F\+I\+LE $\ast$ {\bf fopen} (char const $\ast$file\+\_\+name, char const $\ast$mode)
\item 
F\+I\+LE $\ast$ {\bf freopen} (char const $\ast$file\+\_\+name, char const $\ast$mode, F\+I\+LE $\ast$stream)
\item 
int {\bf rename} (char const $\ast$old\+\_\+name, char const $\ast$new\+\_\+name)
\item 
int {\bf remove} (char const $\ast$name)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
This namespace includes implementation of basic S\+TL\textquotesingle{}s / S\+T\+D\+L\+Ib\textquotesingle{}s functions such that they accept U\+T\+F-\/8 strings. on Windows. Otherwise it is just an alias of std namespace (i.\+e. not on Windows) 

\subsection{Typedef Documentation}
\index{booster\+::nowide@{booster\+::nowide}!filebuf@{filebuf}}
\index{filebuf@{filebuf}!booster\+::nowide@{booster\+::nowide}}
\subsubsection[{filebuf}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf basic\+\_\+filebuf}$<$char$>$ {\bf booster\+::nowide\+::filebuf}}\label{namespacebooster_1_1nowide_af9a3f7aff0f973ee8d6782afcc3e9093}
Same as std\+::filebuf but accepts U\+T\+F-\/8 strings under Windows \index{booster\+::nowide@{booster\+::nowide}!fstream@{fstream}}
\index{fstream@{fstream}!booster\+::nowide@{booster\+::nowide}}
\subsubsection[{fstream}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf basic\+\_\+fstream}$<$char$>$ {\bf booster\+::nowide\+::fstream}}\label{namespacebooster_1_1nowide_a26c228a6232fd9d80df062561a77f828}
Same as std\+::fstream but accepts U\+T\+F-\/8 strings under Windows \index{booster\+::nowide@{booster\+::nowide}!ifstream@{ifstream}}
\index{ifstream@{ifstream}!booster\+::nowide@{booster\+::nowide}}
\subsubsection[{ifstream}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf basic\+\_\+ifstream}$<$char$>$ {\bf booster\+::nowide\+::ifstream}}\label{namespacebooster_1_1nowide_aa72388695c66c16e78554f6b59f4e358}
Same as std\+::ifstream but accepts U\+T\+F-\/8 strings under Windows \index{booster\+::nowide@{booster\+::nowide}!ofstream@{ofstream}}
\index{ofstream@{ofstream}!booster\+::nowide@{booster\+::nowide}}
\subsubsection[{ofstream}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf basic\+\_\+ofstream}$<$char$>$ {\bf booster\+::nowide\+::ofstream}}\label{namespacebooster_1_1nowide_a4629258b0534aa7c54c75ceedf17dd60}
Same as std\+::ofstream but accepts U\+T\+F-\/8 strings under Windows 

\subsection{Function Documentation}
\index{booster\+::nowide@{booster\+::nowide}!convert@{convert}}
\index{convert@{convert}!booster\+::nowide@{booster\+::nowide}}
\subsubsection[{convert(wchar\+\_\+t const $\ast$s)}]{\setlength{\rightskip}{0pt plus 5cm}B\+O\+O\+S\+T\+E\+R\+\_\+\+A\+PI std\+::string booster\+::nowide\+::convert (
\begin{DoxyParamCaption}
\item[{wchar\+\_\+t const $\ast$}]{s}
\end{DoxyParamCaption}
)}\label{namespacebooster_1_1nowide_a9641be36b3697a2bc5fc5a150ec5dd8b}
Convert between U\+T\+F-\/16 and U\+T\+F-\/8 string, implemented only on Windows platform 

Referenced by convert(), fopen(), freopen(), remove(), and rename().

\index{booster\+::nowide@{booster\+::nowide}!convert@{convert}}
\index{convert@{convert}!booster\+::nowide@{booster\+::nowide}}
\subsubsection[{convert(char const $\ast$s)}]{\setlength{\rightskip}{0pt plus 5cm}B\+O\+O\+S\+T\+E\+R\+\_\+\+A\+PI std\+::wstring booster\+::nowide\+::convert (
\begin{DoxyParamCaption}
\item[{char const $\ast$}]{s}
\end{DoxyParamCaption}
)}\label{namespacebooster_1_1nowide_a07f2c5a404c93d01d65c7d42d067ca61}
Convert between U\+T\+F-\/8 and U\+T\+F-\/16 string, implemented only on Windows platform \index{booster\+::nowide@{booster\+::nowide}!convert@{convert}}
\index{convert@{convert}!booster\+::nowide@{booster\+::nowide}}
\subsubsection[{convert(std\+::wstring const \&s)}]{\setlength{\rightskip}{0pt plus 5cm}std\+::string booster\+::nowide\+::convert (
\begin{DoxyParamCaption}
\item[{std\+::wstring const \&}]{s}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{namespacebooster_1_1nowide_a25f1886fc2f6536b3330293da59ccace}
Convert between U\+T\+F-\/16 and U\+T\+F-\/8 string, implemented only on Windows platform 

References convert().

\index{booster\+::nowide@{booster\+::nowide}!convert@{convert}}
\index{convert@{convert}!booster\+::nowide@{booster\+::nowide}}
\subsubsection[{convert(std\+::string const \&s)}]{\setlength{\rightskip}{0pt plus 5cm}std\+::wstring booster\+::nowide\+::convert (
\begin{DoxyParamCaption}
\item[{std\+::string const \&}]{s}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{namespacebooster_1_1nowide_a8ddc9143ac327bb926b1f316d53fad1b}
Convert between U\+T\+F-\/8 and U\+T\+F-\/16 string, implemented only on Windows platform 

References convert().

\index{booster\+::nowide@{booster\+::nowide}!fopen@{fopen}}
\index{fopen@{fopen}!booster\+::nowide@{booster\+::nowide}}
\subsubsection[{fopen(char const $\ast$file\+\_\+name, char const $\ast$mode)}]{\setlength{\rightskip}{0pt plus 5cm}F\+I\+LE$\ast$ booster\+::nowide\+::fopen (
\begin{DoxyParamCaption}
\item[{char const $\ast$}]{file\+\_\+name, }
\item[{char const $\ast$}]{mode}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{namespacebooster_1_1nowide_a905c2519da73b19b5fc4481785249726}
Same as C fopen, but accepts U\+T\+F-\/8 string as file name under Windows 

References convert().

\index{booster\+::nowide@{booster\+::nowide}!freopen@{freopen}}
\index{freopen@{freopen}!booster\+::nowide@{booster\+::nowide}}
\subsubsection[{freopen(char const $\ast$file\+\_\+name, char const $\ast$mode, F\+I\+L\+E $\ast$stream)}]{\setlength{\rightskip}{0pt plus 5cm}F\+I\+LE$\ast$ booster\+::nowide\+::freopen (
\begin{DoxyParamCaption}
\item[{char const $\ast$}]{file\+\_\+name, }
\item[{char const $\ast$}]{mode, }
\item[{F\+I\+LE $\ast$}]{stream}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{namespacebooster_1_1nowide_a9863610cbd032d3d0113b92b6a182f99}
Same as C freopen, but accepts U\+T\+F-\/8 string as file name under Windows 

References convert().

\index{booster\+::nowide@{booster\+::nowide}!remove@{remove}}
\index{remove@{remove}!booster\+::nowide@{booster\+::nowide}}
\subsubsection[{remove(char const $\ast$name)}]{\setlength{\rightskip}{0pt plus 5cm}int booster\+::nowide\+::remove (
\begin{DoxyParamCaption}
\item[{char const $\ast$}]{name}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{namespacebooster_1_1nowide_a9f1d13ccc634e8a0e558a51e38144288}
Same as C remove, but accepts U\+T\+F-\/8 string as file name under Windows 

References convert().

\index{booster\+::nowide@{booster\+::nowide}!rename@{rename}}
\index{rename@{rename}!booster\+::nowide@{booster\+::nowide}}
\subsubsection[{rename(char const $\ast$old\+\_\+name, char const $\ast$new\+\_\+name)}]{\setlength{\rightskip}{0pt plus 5cm}int booster\+::nowide\+::rename (
\begin{DoxyParamCaption}
\item[{char const $\ast$}]{old\+\_\+name, }
\item[{char const $\ast$}]{new\+\_\+name}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{namespacebooster_1_1nowide_ae94d32a57f960c3239ee20276fc2ce93}
Same as C rename, but accepts U\+T\+F-\/8 strings as file names under Windows 

References convert().

