\hypertarget{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type_3_01_t_00_01void_01_4}{}\doxysection{KBLIB\+\_\+\+NS\+::detail\+::str\+\_\+type\texorpdfstring{$<$}{<} T, void \texorpdfstring{$>$}{>} Struct Template Reference}
\label{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type_3_01_t_00_01void_01_4}\index{KBLIB\_NS::detail::str\_type$<$ T, void $>$@{KBLIB\_NS::detail::str\_type$<$ T, void $>$}}


Performs a natural conversion to a stringlike type.  




{\ttfamily \#include $<$kblib/stringops.\+h$>$}

\doxysubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
using \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type_3_01_t_00_01void_01_4_a7d695d77bae238d790195ac9c21700a0}{type}} = T
\begin{DoxyCompactList}\small\item\em Non-\/arithmetic types are either already stringlike, or have no natural conversion to std\+::string. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type_3_01_t_00_01void_01_4_a85bf721d263001422ac18196618bd249}{convert}} (T \&\&in) -\/$>$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type_3_01_t_00_01void_01_4_a7d695d77bae238d790195ac9c21700a0}{type}}
\begin{DoxyCompactList}\small\item\em Returns the argument unchanged. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename T$>$\newline
struct KBLIB\+\_\+\+NS\+::detail\+::str\+\_\+type$<$ T, void $>$}
Performs a natural conversion to a stringlike type. 

A natural conversion for an arithmetic type is std\+::to\+\_\+string. For any other type, there is no assumed transformation, so they are passed through unchanged.

\begin{DoxyNote}{Note}
This is primarily an implementation detail of concat, provided in the main namespace because it might be generally useful. This partial specialization is for non-\/arithmetic types. 
\end{DoxyNote}


Definition at line \mbox{\hyperlink{stringops_8h_source_l00141}{141}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.



\doxysubsection{Member Typedef Documentation}
\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type_3_01_t_00_01void_01_4_a7d695d77bae238d790195ac9c21700a0}\label{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type_3_01_t_00_01void_01_4_a7d695d77bae238d790195ac9c21700a0}} 
\index{KBLIB\_NS::detail::str\_type$<$ T, void $>$@{KBLIB\_NS::detail::str\_type$<$ T, void $>$}!type@{type}}
\index{type@{type}!KBLIB\_NS::detail::str\_type$<$ T, void $>$@{KBLIB\_NS::detail::str\_type$<$ T, void $>$}}
\doxysubsubsection{\texorpdfstring{type}{type}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
using \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type}{KBLIB\+\_\+\+NS\+::detail\+::str\+\_\+type}}$<$ T, void $>$\+::type =  T}



Non-\/arithmetic types are either already stringlike, or have no natural conversion to std\+::string. 



Definition at line \mbox{\hyperlink{stringops_8h_source_l00146}{146}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type_3_01_t_00_01void_01_4_a85bf721d263001422ac18196618bd249}\label{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type_3_01_t_00_01void_01_4_a85bf721d263001422ac18196618bd249}} 
\index{KBLIB\_NS::detail::str\_type$<$ T, void $>$@{KBLIB\_NS::detail::str\_type$<$ T, void $>$}!convert@{convert}}
\index{convert@{convert}!KBLIB\_NS::detail::str\_type$<$ T, void $>$@{KBLIB\_NS::detail::str\_type$<$ T, void $>$}}
\doxysubsubsection{\texorpdfstring{convert()}{convert()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
static auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type}{KBLIB\+\_\+\+NS\+::detail\+::str\+\_\+type}}$<$ T, void $>$\+::convert (\begin{DoxyParamCaption}\item[{T \&\&}]{in }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail_1_1str__type_3_01_t_00_01void_01_4_a7d695d77bae238d790195ac9c21700a0}{type}} \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Returns the argument unchanged. 



Definition at line \mbox{\hyperlink{stringops_8h_source_l00150}{150}} of file \mbox{\hyperlink{stringops_8h_source}{stringops.\+h}}.



The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
kblib/\mbox{\hyperlink{stringops_8h}{stringops.\+h}}\end{DoxyCompactItemize}
