Initial release commit
This commit is contained in:
47
include/simple_string.h
Normal file
47
include/simple_string.h
Normal file
@@ -0,0 +1,47 @@
|
||||
#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;
|
||||
};
|
||||
Reference in New Issue
Block a user