47 lines
1.4 KiB
C++
47 lines
1.4 KiB
C++
#include <malloc.h>
|
|
#include <string>
|
|
|
|
class simple_string
|
|
{
|
|
public:
|
|
simple_string(const simple_string& src);
|
|
simple_string& operator =(const simple_string& src);
|
|
simple_string(simple_string&& src) noexcept;
|
|
simple_string& operator =(simple_string&& src) noexcept;
|
|
|
|
simple_string(const char* beg, const char* end);
|
|
simple_string(const char* str, const size_t slen);
|
|
simple_string(const char* str);
|
|
simple_string(const size_t initial_capacity, const char fill_value='\0');
|
|
simple_string(const std::string& str);
|
|
simple_string();
|
|
|
|
~simple_string(void);
|
|
|
|
simple_string& append(const char* other);
|
|
simple_string& append(const char* beg, const char* end);
|
|
simple_string& append(const char* other, const size_t slen);
|
|
simple_string& append(const std::string& other);
|
|
simple_string& append(const simple_string& other);
|
|
simple_string& append(const char x);
|
|
|
|
void resize(const size_t new_size);
|
|
void expand(const size_t extra_capacity);
|
|
void reserve(const size_t new_capacity);
|
|
|
|
const char* c_str(void) const noexcept;
|
|
char* data(void) noexcept;
|
|
size_t size(void) const noexcept;
|
|
|
|
char* begin(void) noexcept;
|
|
char* end(void) noexcept;
|
|
const char* cbegin(void) const noexcept;
|
|
const char* cend(void) const noexcept;
|
|
|
|
char& operator [](const size_t idx) noexcept;
|
|
const char& operator [](const size_t idx) const noexcept;
|
|
private:
|
|
char* m_data = nullptr;
|
|
size_t m_size = 0;
|
|
size_t m_capacity = 0;
|
|
}; |