bux API Reference
1.12.6
Static library of whatever are seen required in general purpose but not directly supported from Modern C++. Or whatever reusable originated from my side projects.
Toggle main menu visibility
Loading...
Searching...
No Matches
include
bux
MemOut.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <ostream>
// std::basic_ostream<>
4
#include <span>
// std::span<>
5
6
namespace
bux
{
7
8
//
9
// Types
10
//
11
template
<
class
_CharT,
class
_Traits>
12
struct
C_OMemBufAsMemberT
13
{
14
// Data
15
struct
C_OMemBuf
: std::basic_streambuf<_CharT,_Traits>
16
{
17
C_OMemBuf
(_CharT *buffer,
size_t
size)
18
{ this->setp(buffer, buffer+size); }
19
C_OMemBuf
(std::span<_CharT> buffer)
20
{ this->setp(buffer.begin(), buffer.end()); }
21
}
m_Buffer
;
22
23
// Ctor
24
C_OMemBufAsMemberT
(_CharT *buffer,
size_t
size):
m_Buffer
(buffer, size) {}
25
C_OMemBufAsMemberT
(std::span<_CharT> buffer):
m_Buffer
(buffer) {}
26
};
27
28
template
<
class
_CharT,
class
_Traits =std::
char
_traits<_CharT>>
29
class
C_OMemStreamT
:
30
private
C_OMemBufAsMemberT
<_CharT,_Traits>,
31
public
std::basic_ostream<_CharT,_Traits>
// Inheritance order matters
32
{
33
public
:
34
35
// Ctor
36
C_OMemStreamT
(_CharT *buffer,
size_t
size):
37
C_OMemBufAsMemberT
<_CharT,_Traits>(buffer, size),
38
std::basic_ostream<_CharT,_Traits>(&this->
m_Buffer
)
39
{}
40
C_OMemStreamT
(std::span<_CharT> buffer):
41
C_OMemBufAsMemberT
<_CharT,_Traits>(buffer),
42
std::basic_ostream<_CharT,_Traits>(&this->
m_Buffer
)
43
{}
44
};
45
using
C_OMemStream
=
C_OMemStreamT<char>
;
46
47
}
// namespace bux
bux::C_OMemStreamT
Definition
MemOut.h:32
bux::C_OMemStreamT::C_OMemStreamT
C_OMemStreamT(_CharT *buffer, size_t size)
Definition
MemOut.h:36
bux::C_OMemStreamT::C_OMemStreamT
C_OMemStreamT(std::span< _CharT > buffer)
Definition
MemOut.h:40
bux
THE common namespace of bux library.
Definition
AtomiX.cpp:3
bux::C_OMemStream
C_OMemStreamT< char > C_OMemStream
Definition
MemOut.h:45
bux::C_OMemBufAsMemberT::C_OMemBuf::C_OMemBuf
C_OMemBuf(std::span< _CharT > buffer)
Definition
MemOut.h:19
bux::C_OMemBufAsMemberT::C_OMemBuf::C_OMemBuf
C_OMemBuf(_CharT *buffer, size_t size)
Definition
MemOut.h:17
bux::C_OMemBufAsMemberT::C_OMemBufAsMemberT
C_OMemBufAsMemberT(std::span< _CharT > buffer)
Definition
MemOut.h:25
bux::C_OMemBufAsMemberT::C_OMemBufAsMemberT
C_OMemBufAsMemberT(_CharT *buffer, size_t size)
Definition
MemOut.h:24
bux::C_OMemBufAsMemberT::m_Buffer
bux::C_OMemBufAsMemberT::C_OMemBuf m_Buffer
Generated by
1.18.0