\hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{}\section{utl\+:\+:ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$ Class Template Reference}
\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}


{\ttfamily \#include $<$ostream\+\_\+dev.\+h$>$}

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
using \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aa3cb961a80a8dee210e9ab9ffd2483ee}{type}} = \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}}
\begin{DoxyCompactList}\small\item\em Export type as identity meta-\/function. \end{DoxyCompactList}\end{DoxyCompactItemize}
\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
using \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a0c182d46215479ac0169c741db773f3b}{data\+\_\+type}} = data\+\_\+t
\item 
using \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a2186444525589e2e06fdf947b238b785}{pointer\+\_\+type}} = data\+\_\+t $\ast$
\end{DoxyCompactItemize}

\subsection*{Public Member Functions}
\begin{Indent}\textbf{ Common output device interface}\par
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aaee696bf560e084e61b4fb0217569d1a}{put}} (const data\+\_\+t \&data)
\begin{DoxyCompactList}\small\item\em Put interface. This function should send a single data\+\_\+t object to device. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a8014501f6c22a8dc0a366898e92fa83c}{put}} (const data\+\_\+t $\ast$data, \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} n)
\begin{DoxyCompactList}\small\item\em Put interface. This function should send a stream of data\+\_\+t objects to device. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Stream operator $<$$<$ interface}\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename \+\_\+\+Src\+\_\+t $>$ }\\\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a9761a89cc6f5f57529fd7f686350a221}{operator$<$$<$}} (const \+\_\+\+Src\+\_\+t \&src)
\begin{DoxyCompactList}\small\item\em Template operator$<$$<$ implementation for for all by value/ref parameters. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename \+\_\+\+Src\+\_\+t $>$ }\\\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aeedb13f9949b3cc31fede903553c0a05}{operator$<$$<$}} (\+\_\+\+Src\+\_\+t $\ast$src)=delete
\begin{DoxyCompactList}\small\item\em Overload to disallow pointer types as source. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a767095b8efcafd7cb50c065b1c781146}{operator$<$$<$}} (const data\+\_\+t \&src)
\begin{DoxyCompactList}\small\item\em Overload for single data\+\_\+t object. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aa440d7490da956cfe91f2835191056a4}{iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a853552686bba8432a6f53a9c21f83ac2}{end}} () noexcept
\item 
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_abcb00d6a76ac3baa46283c631c020b9c}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a8ea06a012f2d55f67421026116000337}{end}} () const noexcept
\item 
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_abcb00d6a76ac3baa46283c631c020b9c}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a7a883628b71791d0f26a47f9d801543d}{cend}} () const noexcept
\end{DoxyCompactItemize}

\subsection*{Constructor / Destructor}
\begin{DoxyCompactItemize}
\item 
virtual \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_ac653594be9325b740b6ded465de6d639}{$\sim$ostream\+\_\+dev}} ()=default
\begin{DoxyCompactList}\small\item\em Virtual destructor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a977d2f5eb87ae8b301921542be350a93}{ostream\+\_\+dev}} ()=default
\begin{DoxyCompactList}\small\item\em A default constructor from derived only. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a0662ca7855b82a14b50d48a710c64709}{ostream\+\_\+dev}} (const \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}} \&)=delete
\begin{DoxyCompactList}\small\item\em No copies. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a013bfe883ab1f72c3d19678227072178}{operator=}} (const \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}} \&)=delete
\end{DoxyCompactItemize}
\subsection*{S\+T\+L-\/like Output iterator interface}
\begin{DoxyCompactItemize}
\item 
using \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aa440d7490da956cfe91f2835191056a4}{iterator}} = \mbox{\hyperlink{classutl_1_1ostreamdev__it}{ostreamdev\+\_\+it}}$<$ \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}}, data\+\_\+t $>$
\begin{DoxyCompactList}\small\item\em Iterator. \end{DoxyCompactList}\item 
using \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_abcb00d6a76ac3baa46283c631c020b9c}{const\+\_\+iterator}} = \mbox{\hyperlink{classutl_1_1ostreamdev__it}{ostreamdev\+\_\+it}}$<$ const \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}}, data\+\_\+t $>$
\begin{DoxyCompactList}\small\item\em Const iterator. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aa440d7490da956cfe91f2835191056a4}{iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_ab1319beb5c2d1d84adb54c83d73d34b6}{begin}} () noexcept
\begin{DoxyCompactList}\small\item\em .begin implementation \end{DoxyCompactList}\item 
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_abcb00d6a76ac3baa46283c631c020b9c}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a43515a84a7f31d33a1bcc5c352ae3809}{begin}} () const noexcept
\item 
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_abcb00d6a76ac3baa46283c631c020b9c}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aafdd8c809f8c113ff8749d9d98ad5831}{cbegin}} () const noexcept
\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename data\+\_\+t$>$\newline
class utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}



Definition at line 171 of file ostream\+\_\+dev.\+h.



\subsection{Member Typedef Documentation}
\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_abcb00d6a76ac3baa46283c631c020b9c}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_abcb00d6a76ac3baa46283c631c020b9c}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!const\+\_\+iterator@{const\+\_\+iterator}}
\index{const\+\_\+iterator@{const\+\_\+iterator}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{const\+\_\+iterator}{const\_iterator}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
using \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_abcb00d6a76ac3baa46283c631c020b9c}{const\+\_\+iterator}} =  \mbox{\hyperlink{classutl_1_1ostreamdev__it}{ostreamdev\+\_\+it}} $<$const \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}}, data\+\_\+t$>$}



Const iterator. 



Definition at line 267 of file ostream\+\_\+dev.\+h.

\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a0c182d46215479ac0169c741db773f3b}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a0c182d46215479ac0169c741db773f3b}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!data\+\_\+type@{data\+\_\+type}}
\index{data\+\_\+type@{data\+\_\+type}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{data\+\_\+type}{data\_type}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
using \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a0c182d46215479ac0169c741db773f3b}{data\+\_\+type}} =  data\+\_\+t}

Export types as output device concept demands 

Definition at line 177 of file ostream\+\_\+dev.\+h.

\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aa440d7490da956cfe91f2835191056a4}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aa440d7490da956cfe91f2835191056a4}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!iterator@{iterator}}
\index{iterator@{iterator}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{iterator}{iterator}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
using \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aa440d7490da956cfe91f2835191056a4}{iterator}} =  \mbox{\hyperlink{classutl_1_1ostreamdev__it}{ostreamdev\+\_\+it}} $<$\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}}, data\+\_\+t$>$}



Iterator. 



Definition at line 266 of file ostream\+\_\+dev.\+h.

\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a2186444525589e2e06fdf947b238b785}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a2186444525589e2e06fdf947b238b785}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!pointer\+\_\+type@{pointer\+\_\+type}}
\index{pointer\+\_\+type@{pointer\+\_\+type}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{pointer\+\_\+type}{pointer\_type}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
using \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a2186444525589e2e06fdf947b238b785}{pointer\+\_\+type}} =  data\+\_\+t$\ast$}



Definition at line 178 of file ostream\+\_\+dev.\+h.

\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aa3cb961a80a8dee210e9ab9ffd2483ee}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aa3cb961a80a8dee210e9ab9ffd2483ee}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!type@{type}}
\index{type@{type}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{type}{type}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
using \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aa3cb961a80a8dee210e9ab9ffd2483ee}{type}} =  \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}}}



Export type as identity meta-\/function. 



Definition at line 180 of file ostream\+\_\+dev.\+h.



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_ac653594be9325b740b6ded465de6d639}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_ac653594be9325b740b6ded465de6d639}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!````~ostream\+\_\+dev@{$\sim$ostream\+\_\+dev}}
\index{````~ostream\+\_\+dev@{$\sim$ostream\+\_\+dev}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{$\sim$ostream\+\_\+dev()}{~ostream\_dev()}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
virtual \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::$\sim$\mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [default]}}



Virtual destructor. 

\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a977d2f5eb87ae8b301921542be350a93}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a977d2f5eb87ae8b301921542be350a93}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!ostream\+\_\+dev@{ostream\+\_\+dev}}
\index{ostream\+\_\+dev@{ostream\+\_\+dev}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{ostream\+\_\+dev()}{ostream\_dev()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
\mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [default]}}



A default constructor from derived only. 

\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a0662ca7855b82a14b50d48a710c64709}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a0662ca7855b82a14b50d48a710c64709}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!ostream\+\_\+dev@{ostream\+\_\+dev}}
\index{ostream\+\_\+dev@{ostream\+\_\+dev}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{ostream\+\_\+dev()}{ostream\_dev()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
\mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev}} (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [delete]}}



No copies. 



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_ab1319beb5c2d1d84adb54c83d73d34b6}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_ab1319beb5c2d1d84adb54c83d73d34b6}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!begin@{begin}}
\index{begin@{begin}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{begin()}{begin()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aa440d7490da956cfe91f2835191056a4}{iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



.begin implementation 



Definition at line 270 of file ostream\+\_\+dev.\+h.

\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a43515a84a7f31d33a1bcc5c352ae3809}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a43515a84a7f31d33a1bcc5c352ae3809}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!begin@{begin}}
\index{begin@{begin}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{begin()}{begin()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_abcb00d6a76ac3baa46283c631c020b9c}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Definition at line 271 of file ostream\+\_\+dev.\+h.

\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aafdd8c809f8c113ff8749d9d98ad5831}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aafdd8c809f8c113ff8749d9d98ad5831}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!cbegin@{cbegin}}
\index{cbegin@{cbegin}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{cbegin()}{cbegin()}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_abcb00d6a76ac3baa46283c631c020b9c}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::cbegin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Definition at line 272 of file ostream\+\_\+dev.\+h.

\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a7a883628b71791d0f26a47f9d801543d}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a7a883628b71791d0f26a47f9d801543d}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!cend@{cend}}
\index{cend@{cend}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{cend()}{cend()}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_abcb00d6a76ac3baa46283c631c020b9c}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::cend (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Definition at line 277 of file ostream\+\_\+dev.\+h.

\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a853552686bba8432a6f53a9c21f83ac2}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a853552686bba8432a6f53a9c21f83ac2}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!end@{end}}
\index{end@{end}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{end()}{end()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aa440d7490da956cfe91f2835191056a4}{iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::end (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}

.end implementation 

Definition at line 275 of file ostream\+\_\+dev.\+h.

\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a8ea06a012f2d55f67421026116000337}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a8ea06a012f2d55f67421026116000337}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!end@{end}}
\index{end@{end}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{end()}{end()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_abcb00d6a76ac3baa46283c631c020b9c}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::end (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Definition at line 276 of file ostream\+\_\+dev.\+h.

\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a9761a89cc6f5f57529fd7f686350a221}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a9761a89cc6f5f57529fd7f686350a221}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
template$<$typename \+\_\+\+Src\+\_\+t $>$ \\
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::operator$<$$<$ (\begin{DoxyParamCaption}\item[{const \+\_\+\+Src\+\_\+t \&}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Template operator$<$$<$ implementation for for all by value/ref parameters. 

\begin{DoxyNote}{Note}
In the case \+\_\+\+Src\+\_\+t size is not an exact multiple of data\+\_\+t size the write data will be truncated and there may be data loss. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em src} & Reference to source data \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Reference to this device for chaining 
\end{DoxyReturn}


Definition at line 245 of file ostream\+\_\+dev.\+h.

\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aeedb13f9949b3cc31fede903553c0a05}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aeedb13f9949b3cc31fede903553c0a05}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
template$<$typename \+\_\+\+Src\+\_\+t $>$ \\
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::operator$<$$<$ (\begin{DoxyParamCaption}\item[{\+\_\+\+Src\+\_\+t $\ast$}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}



Overload to disallow pointer types as source. 

\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a767095b8efcafd7cb50c065b1c781146}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a767095b8efcafd7cb50c065b1c781146}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::operator$<$$<$ (\begin{DoxyParamCaption}\item[{const data\+\_\+t \&}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Overload for single data\+\_\+t object. 



Definition at line 256 of file ostream\+\_\+dev.\+h.

\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a013bfe883ab1f72c3d19678227072178}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a013bfe883ab1f72c3d19678227072178}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!operator=@{operator=}}
\index{operator=@{operator=}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{operator=()}{operator=()}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
\mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4}{ostream\+\_\+dev\+\_\+t}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [delete]}}

No copy assignments \mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aaee696bf560e084e61b4fb0217569d1a}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_aaee696bf560e084e61b4fb0217569d1a}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!put@{put}}
\index{put@{put}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{put()}{put()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
\mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::put (\begin{DoxyParamCaption}\item[{const data\+\_\+t \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Put interface. This function should send a single data\+\_\+t object to device. 


\begin{DoxyParams}{Parameters}
{\em data} & The data to send \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The number of transmitted data items 
\end{DoxyReturn}
\begin{DoxyNote}{Note}
A successful call should return 1 
\end{DoxyNote}


Definition at line 213 of file ostream\+\_\+dev.\+h.

\mbox{\Hypertarget{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a8014501f6c22a8dc0a366898e92fa83c}\label{classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_a8014501f6c22a8dc0a366898e92fa83c}} 
\index{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}!put@{put}}
\index{put@{put}!utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ virtual\+\_\+tag, data\+\_\+t $>$}}
\subsubsection{\texorpdfstring{put()}{put()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename data\+\_\+t $>$ \\
\mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ \mbox{\hyperlink{structutl_1_1virtual__tag}{virtual\+\_\+tag}}, data\+\_\+t $>$\+::put (\begin{DoxyParamCaption}\item[{const data\+\_\+t $\ast$}]{data,  }\item[{\mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}}}]{n }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Put interface. This function should send a stream of data\+\_\+t objects to device. 


\begin{DoxyParams}{Parameters}
{\em data} & Pointer to buffer indenting write to device. \\
\hline
{\em n} & The number of data of type data\+\_\+t to send \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The number of transmitted items. 
\end{DoxyReturn}


Definition at line 225 of file ostream\+\_\+dev.\+h.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
include/utl/dev/\mbox{\hyperlink{ostream__dev_8h}{ostream\+\_\+dev.\+h}}\end{DoxyCompactItemize}
