added: to membuffer:

template<typename in_item_type>
         void append(const in_item_type * item_array, size_t len);
         when adding values from item_array are casted to the type of the internal buffer
changed: some minor optimizations in Space (in Add() methods with WTextStream as an argument)
changed: removed following write() methods from TextStreamBase:
         TextStreamBase & write(const char * buf,    size_t len);
         TextStreamBase & write(const wchar_t * buf, size_t len);
         and added a template instead:
         template<typename in_buffer_type>
         TextStreamBase & write(const in_buffer_type * buf, size_t len);
         this allows to write char* buffer to TextStreamBase<wchar_t...> (and vice versa)
added:   two write() methods to TextStreamBase:
         write(const char * format, double val);
         write(const wchar_t * format, double val);
         converting double value to the text (format is the same as in snprintf)




git-svn-id: svn://ttmath.org/publicrep/pikotools/trunk@448 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2013-11-28 22:21:10 +00:00
parent 3cc5fd5e12
commit 28ea8f3c3e
4 changed files with 56 additions and 35 deletions

View File

@@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2012, Tomasz Sowa
* Copyright (c) 2012-2013, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -39,6 +39,8 @@
#define headerfile_picotools_membuffer_membuffer
#include <iostream>
namespace PT
{
@@ -116,6 +118,9 @@ public:
void append(item_type item);
void append(const item_type * item_array, size_t len);
template<typename in_item_type>
void append(const in_item_type * item_array, size_t len);
template<typename arg_item_type, size_t arg_stack_size, size_t arg_heap_block_size>
void append(const MemBuffer<arg_item_type, arg_stack_size, arg_heap_block_size> & arg);
@@ -595,6 +600,18 @@ void MemBuffer<item_type, stack_size, heap_block_size>::append(const item_type *
template<typename item_type, size_t stack_size, size_t heap_block_size>
template<typename in_item_type>
void MemBuffer<item_type, stack_size, heap_block_size>::append(const in_item_type * item_array, size_t len)
{
for(size_t i=0 ; i<len ; ++i)
append(static_cast<item_type>(item_array[i]));
}
template<typename item_type, size_t stack_size, size_t heap_block_size>
template<typename arg_item_type, size_t arg_stack_size, size_t arg_heap_block_size>
void MemBuffer<item_type, stack_size, heap_block_size>::append(