#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 |
1.3