System::IO::BasicSystemOStreamWrapper< Elem, Traits > Class Template Reference

Represents a std::ostream-like wrapper that used BasicSystemIOStreamBuf as internal buffer. More...

#include "system_stream_wrappers.h"

Inherits basic_ostream< Elem, Traits >.

Public Types

using char_type = Elem
 
using traits_type = Traits
 
using Mybase = std::basic_ostream< char_type, traits_type >
 
using Mysb = BasicSystemIOStreamBuf< char_type, traits_type >
 

Public Member Functions

 BasicSystemOStreamWrapper (SharedPtr< Stream > str, SystemIOStreamWrappingMode mode=SystemIOStreamWrappingMode::Binary)
 Constructs a new instance of the BasicSystemOStreamWrapper. More...
 
 BasicSystemOStreamWrapper (const BasicSystemOStreamWrapper &)=delete
 Copy constructor. Deleted. More...
 
 BasicSystemOStreamWrapper (BasicSystemOStreamWrapper &&right) noexcept
 Move constructor. More...
 
BasicSystemOStreamWrapperoperator= (const BasicSystemOStreamWrapper &)=delete
 Copy assignment operator. Deleted. More...
 
BasicSystemOStreamWrapperoperator= (BasicSystemOStreamWrapper &&right) noexcept
 Move assignment operator. More...
 
void AssignRV (BasicSystemOStreamWrapper &&right)
 Used in move constructor and move assignment operator to reset pointers and call swap(). More...
 
void swap (BasicSystemOStreamWrapper &right)
 Call to swap *this and right, if they are not equal. More...
 

Detailed Description

template<typename Elem, typename Traits = std::char_traits<Elem>>
class System::IO::BasicSystemOStreamWrapper< Elem, Traits >

Represents a std::ostream-like wrapper that used BasicSystemIOStreamBuf as internal buffer.

Member Typedef Documentation

◆ char_type

template<typename Elem, typename Traits = std::char_traits<Elem>>
using System::IO::BasicSystemOStreamWrapper< Elem, Traits >::char_type = Elem

◆ Mybase

template<typename Elem, typename Traits = std::char_traits<Elem>>
using System::IO::BasicSystemOStreamWrapper< Elem, Traits >::Mybase = std::basic_ostream<char_type, traits_type>

◆ Mysb

template<typename Elem, typename Traits = std::char_traits<Elem>>
using System::IO::BasicSystemOStreamWrapper< Elem, Traits >::Mysb = BasicSystemIOStreamBuf<char_type, traits_type>

◆ traits_type

template<typename Elem, typename Traits = std::char_traits<Elem>>
using System::IO::BasicSystemOStreamWrapper< Elem, Traits >::traits_type = Traits

Constructor & Destructor Documentation

◆ BasicSystemOStreamWrapper() [1/3]

template<typename Elem, typename Traits = std::char_traits<Elem>>
System::IO::BasicSystemOStreamWrapper< Elem, Traits >::BasicSystemOStreamWrapper ( SharedPtr< Stream str,
SystemIOStreamWrappingMode  mode = SystemIOStreamWrappingMode::Binary 
)
inline

Constructs a new instance of the BasicSystemOStreamWrapper.

Parameters
strThe pointer to the stream
modeWrapping mode

◆ BasicSystemOStreamWrapper() [2/3]

template<typename Elem, typename Traits = std::char_traits<Elem>>
System::IO::BasicSystemOStreamWrapper< Elem, Traits >::BasicSystemOStreamWrapper ( const BasicSystemOStreamWrapper< Elem, Traits > &  )
delete

Copy constructor. Deleted.

◆ BasicSystemOStreamWrapper() [3/3]

template<typename Elem, typename Traits = std::char_traits<Elem>>
System::IO::BasicSystemOStreamWrapper< Elem, Traits >::BasicSystemOStreamWrapper ( BasicSystemOStreamWrapper< Elem, Traits > &&  right)
inlinenoexcept

Move constructor.

Parameters
rightObject to be move

Member Function Documentation

◆ AssignRV()

template<typename Elem, typename Traits = std::char_traits<Elem>>
void System::IO::BasicSystemOStreamWrapper< Elem, Traits >::AssignRV ( BasicSystemOStreamWrapper< Elem, Traits > &&  right)
inline

Used in move constructor and move assignment operator to reset pointers and call swap().

Parameters
rightRvalue reference to object to be swap

◆ operator=() [1/2]

template<typename Elem, typename Traits = std::char_traits<Elem>>
BasicSystemOStreamWrapper& System::IO::BasicSystemOStreamWrapper< Elem, Traits >::operator= ( const BasicSystemOStreamWrapper< Elem, Traits > &  )
delete

Copy assignment operator. Deleted.

◆ operator=() [2/2]

template<typename Elem, typename Traits = std::char_traits<Elem>>
BasicSystemOStreamWrapper& System::IO::BasicSystemOStreamWrapper< Elem, Traits >::operator= ( BasicSystemOStreamWrapper< Elem, Traits > &&  right)
inlinenoexcept

Move assignment operator.

Parameters
rightObject to be move
Returns
*this

◆ swap()

template<typename Elem, typename Traits = std::char_traits<Elem>>
void System::IO::BasicSystemOStreamWrapper< Elem, Traits >::swap ( BasicSystemOStreamWrapper< Elem, Traits > &  right)
inline

Call to swap *this and right, if they are not equal.

Parameters
rightRvalue reference to object to be swap