added to TextStream:
TextStreamBase & operator<<(unsigned char); TextStreamBase & operator<<(bool); TextStreamBase & operator<<(short); TextStreamBase & operator<<(unsigned short); TextStreamBase & operator<<(float); TextStreamBase & operator<<(long double);
This commit is contained in:
@@ -45,10 +45,10 @@
|
||||
#include "membuffer/membuffer.h"
|
||||
#include "types.h"
|
||||
|
||||
|
||||
// for snprintf
|
||||
#include <cstdio>
|
||||
|
||||
|
||||
namespace pt
|
||||
{
|
||||
|
||||
@@ -96,18 +96,23 @@ public:
|
||||
TextStreamBase & operator<<(const std::string & str);
|
||||
|
||||
TextStreamBase & operator<<(const wchar_t * str);
|
||||
TextStreamBase & operator<<(const std::wstring * str);
|
||||
TextStreamBase & operator<<(const std::wstring & str);
|
||||
|
||||
TextStreamBase & operator<<(char);
|
||||
TextStreamBase & operator<<(unsigned char);
|
||||
TextStreamBase & operator<<(wchar_t);
|
||||
TextStreamBase & operator<<(bool);
|
||||
TextStreamBase & operator<<(short);
|
||||
TextStreamBase & operator<<(int);
|
||||
TextStreamBase & operator<<(long);
|
||||
TextStreamBase & operator<<(long long);
|
||||
TextStreamBase & operator<<(unsigned short);
|
||||
TextStreamBase & operator<<(unsigned int);
|
||||
TextStreamBase & operator<<(unsigned long);
|
||||
TextStreamBase & operator<<(unsigned long long);
|
||||
TextStreamBase & operator<<(float);
|
||||
TextStreamBase & operator<<(double);
|
||||
TextStreamBase & operator<<(long double);
|
||||
TextStreamBase & operator<<(const void *); // printing a pointer
|
||||
TextStreamBase & operator<<(const Space & space);
|
||||
TextStreamBase & operator<<(const Date & date);
|
||||
@@ -324,6 +329,16 @@ return *this;
|
||||
}
|
||||
|
||||
|
||||
template<typename char_type, size_t stack_size, size_t heap_block_size>
|
||||
TextStreamBase<char_type, stack_size, heap_block_size> &
|
||||
TextStreamBase<char_type, stack_size, heap_block_size>::operator<<(unsigned char v)
|
||||
{
|
||||
buffer.append(static_cast<char_type>(v));
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
template<typename char_type, size_t stack_size, size_t heap_block_size>
|
||||
TextStreamBase<char_type, stack_size, heap_block_size> &
|
||||
TextStreamBase<char_type, stack_size, heap_block_size>::operator<<(wchar_t v)
|
||||
@@ -334,6 +349,25 @@ return *this;
|
||||
}
|
||||
|
||||
|
||||
template<typename char_type, size_t stack_size, size_t heap_block_size>
|
||||
TextStreamBase<char_type, stack_size, heap_block_size> &
|
||||
TextStreamBase<char_type, stack_size, heap_block_size>::operator<<(bool v)
|
||||
{
|
||||
char c = v ? '1' : '0';
|
||||
buffer.append(static_cast<char_type>(c));
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
template<typename char_type, size_t stack_size, size_t heap_block_size>
|
||||
TextStreamBase<char_type, stack_size, heap_block_size> &
|
||||
TextStreamBase<char_type, stack_size, heap_block_size>::operator<<(short v)
|
||||
{
|
||||
return operator<<(static_cast<long long>(v));
|
||||
}
|
||||
|
||||
|
||||
template<typename char_type, size_t stack_size, size_t heap_block_size>
|
||||
TextStreamBase<char_type, stack_size, heap_block_size> &
|
||||
TextStreamBase<char_type, stack_size, heap_block_size>::operator<<(int v)
|
||||
@@ -368,6 +402,14 @@ return *this;
|
||||
}
|
||||
|
||||
|
||||
template<typename char_type, size_t stack_size, size_t heap_block_size>
|
||||
TextStreamBase<char_type, stack_size, heap_block_size> &
|
||||
TextStreamBase<char_type, stack_size, heap_block_size>::operator<<(unsigned short v)
|
||||
{
|
||||
return operator<<(static_cast<unsigned long long>(v));
|
||||
}
|
||||
|
||||
|
||||
template<typename char_type, size_t stack_size, size_t heap_block_size>
|
||||
TextStreamBase<char_type, stack_size, heap_block_size> &
|
||||
TextStreamBase<char_type, stack_size, heap_block_size>::operator<<(unsigned int v)
|
||||
@@ -402,6 +444,13 @@ return *this;
|
||||
}
|
||||
|
||||
|
||||
template<typename char_type, size_t stack_size, size_t heap_block_size>
|
||||
TextStreamBase<char_type, stack_size, heap_block_size> &
|
||||
TextStreamBase<char_type, stack_size, heap_block_size>::operator<<(float v)
|
||||
{
|
||||
return operator<<(static_cast<double>(v));
|
||||
}
|
||||
|
||||
template<typename char_type, size_t stack_size, size_t heap_block_size>
|
||||
TextStreamBase<char_type, stack_size, heap_block_size> &
|
||||
TextStreamBase<char_type, stack_size, heap_block_size>::operator<<(double v)
|
||||
@@ -413,6 +462,17 @@ char buf[100];
|
||||
}
|
||||
|
||||
|
||||
template<typename char_type, size_t stack_size, size_t heap_block_size>
|
||||
TextStreamBase<char_type, stack_size, heap_block_size> &
|
||||
TextStreamBase<char_type, stack_size, heap_block_size>::operator<<(long double v)
|
||||
{
|
||||
char buf[100];
|
||||
|
||||
snprintf(buf, sizeof(buf)/sizeof(char), "%Lf", v);
|
||||
return operator<<(buf);
|
||||
}
|
||||
|
||||
|
||||
template<typename char_type, size_t stack_size, size_t heap_block_size>
|
||||
TextStreamBase<char_type, stack_size, heap_block_size> &
|
||||
TextStreamBase<char_type, stack_size, heap_block_size>::operator<<(const void * v)
|
||||
|
Reference in New Issue
Block a user