#include <stringbuf.hpp>
Открытые члены | |
StringBuf () | |
Создает пустой объект. | |
StringBuf (const std::string &str) | |
Создает объект, изначально содержащий указатель на переданную строку. | |
StringBuf & | operator+ (const std::string &str) |
Переопределенный оператор для добавления строки. | |
StringBuf & | operator+ (int val) |
Переопределенный оператор для конвертации int в строку. | |
StringBuf & | operator+ (unsigned int val) |
Переопределенный оператор для конвертации unsigned int в строку. | |
StringBuf & | operator+ (long val) |
Переопределенный оператор для конвертации long в строку. | |
StringBuf & | operator+ (unsigned long val) |
Переопределенный оператор для конвертации unsigned long в строку. | |
operator std::string () const | |
Оператор для объединения всех переданных строк в одну итоговую. | |
Закрытые члены | |
StringBuf (const StringBuf &) | |
запрещаем копирование. | |
StringBuf & | operator= (const StringBuf &) |
запрещаем присваивание. | |
Закрытые данные | |
StringBuf_private::List< const std::string * > | ptrs |
указатели на переданные строки | |
StringBuf_private::List< std::string > | tmps |
строки, созданные в процессе конвертации |
Он также может применяться для конвертации целочисленных типов в строку: f(StringBuf()+"Value is:"+i); В процессе работы он запоминает указатели на переданные строки и собирает их в итоговую строку в операторе преобразования в string.
См. определение в файле stringbuf.hpp строка 98
|
запрещаем копирование.
|
|
Создает пустой объект.
См. определение в файле stringbuf.hpp строка 113
00113 {} |
|
Создает объект, изначально содержащий указатель на переданную строку.
См. определение в файле stringbuf.hpp строка 118
00118 { *this+str; }
|
|
Оператор для объединения всех переданных строк в одну итоговую. Т.к. при добавлении строк при помощи operator+(const std::string& str) в объекте запоминаются только указатели, (неявный) вызов данного оператора может привести к непредсказуемым результатам в случае преждевременного уничтожения переданных строк. См. определение в файле stringbuf.cpp строка 50 Перекрестные ссылки StringBuf_private::List< const std::string * >::head и ptrs.
00051 { 00052 typedef StringBuf_private::Node<const string*> node_type; 00053 00054 int len=0; 00055 for (node_type* ptr=ptrs.head; ptr; ptr=ptr->next) len+=ptr->val->size(); 00056 00057 string ret; 00058 ret.reserve(len); 00059 00060 for (node_type* ptr=ptrs.head; ptr; ptr=ptr->next) ret.append(*ptr->val); 00061 return ret; 00062 } |
|
Переопределенный оператор для конвертации unsigned long в строку.
См. определение в файле stringbuf.cpp строка 43
00044 {
00045 PLUS_BODY("lu")
00046 }
|
|
Переопределенный оператор для конвертации long в строку.
См. определение в файле stringbuf.cpp строка 38
00039 {
00040 PLUS_BODY("ld")
00041 }
|
|
Переопределенный оператор для конвертации unsigned int в строку.
См. определение в файле stringbuf.cpp строка 33
00034 {
00035 PLUS_BODY("u")
00036 }
|
|
Переопределенный оператор для конвертации int в строку.
См. определение в файле stringbuf.cpp строка 28
00029 {
00030 PLUS_BODY("d")
00031 }
|
|
Переопределенный оператор для добавления строки. В объекте запоминается только указатель на переданную строку, так что необходимо следить за тем, чтобы время жизни переданной строки не закончилось до (неявного) вызова operator std::string(). См. определение в файле stringbuf.hpp строка 158 Перекрестные ссылки StringBuf_private::List< const std::string * >::add() и ptrs.
|
|
запрещаем присваивание.
|
|
указатели на переданные строки
См. определение в файле stringbuf.hpp строка 100 Используется в operator std::string() и operator+(). |
|
строки, созданные в процессе конвертации
См. определение в файле stringbuf.hpp строка 102 |