-
Notifications
You must be signed in to change notification settings - Fork 1
/
simple_string.h
95 lines (58 loc) · 2.57 KB
/
simple_string.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#ifndef SIMPLE_SimpleString_H
#define SIMPLE_SimpleString_H
#include <cstring>
#include <iostream>
#include <stdexcept>
#include <initializer_list>
class SimpleString
{
public:
SimpleString();
SimpleString( char c );
SimpleString( const char* str );
SimpleString( const SimpleString& sstring );
SimpleString( SimpleString&& sstring );
SimpleString( const std::initializer_list<char>& l );
~SimpleString();
SimpleString& operator=( char c );
SimpleString& operator=( const char* str );
SimpleString& operator=( SimpleString sstring );
SimpleString& operator=( SimpleString&& sstring );
SimpleString& operator+( const SimpleString& sstring );
SimpleString& operator+( char c );
SimpleString& operator+( const char* str );
SimpleString& operator+=( const SimpleString& sstring );
SimpleString& operator+=( char c );
SimpleString& operator+=( const char* str );
char& operator[]( std::size_t pos );
const char& operator[]( std::size_t pos ) const;
void clear();
bool empty() const;
char* const cString() const;
std::size_t length() const;
friend void swap( SimpleString& lhs, SimpleString& rhs );
friend std::ostream& operator<<( std::ostream& out, const SimpleString& sstring );
friend std::istream& operator>>( std::istream& in, SimpleString& sstring );
private:
std::size_t m_length;
char* m_string;
};
bool operator==( const SimpleString& lhs, const SimpleString& rhs );
bool operator==( const char* lhs, const SimpleString& rhs );
bool operator==( const SimpleString& lhs, const char* rhs );
bool operator!=( const SimpleString& lhs, const SimpleString& rhs );
bool operator!=( const char* lhs, const SimpleString& rhs );
bool operator!=( const SimpleString& lhs, const char* rhs );
bool operator<( const SimpleString& lhs, const SimpleString& rhs );
bool operator<( const char* lhs, const SimpleString& rhs );
bool operator<( const SimpleString& lhs, const char* rhs );
bool operator<=( const SimpleString& lhs, const SimpleString& rhs );
bool operator<=( const char* lhs, const SimpleString& rhs );
bool operator<=( const SimpleString& lhs, const char* rhs );
bool operator>( const SimpleString& lhs, const SimpleString& rhs );
bool operator>( const char* lhs, const SimpleString& rhs );
bool operator>( const SimpleString& lhs, const char* rhs );
bool operator>=( const SimpleString& lhs, const SimpleString& rhs );
bool operator>=( const char* lhs, const SimpleString& rhs );
bool operator>=( const SimpleString& lhs, const char* rhs );
#endif // SIMPLE_SimpleString_H