mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-05-28 15:34:33 +00:00
Rename string class to basic_string
This commit is contained in:
parent
be80b52543
commit
90b9e7301d
@ -83,10 +83,10 @@ namespace std
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief String class
|
||||
* @brief Basic string class
|
||||
* String class that can be used to store strings.
|
||||
*/
|
||||
class string
|
||||
class basic_string
|
||||
{
|
||||
private:
|
||||
char *Data{};
|
||||
@ -96,17 +96,17 @@ namespace std
|
||||
public:
|
||||
static const size_t npos = -1;
|
||||
|
||||
string(const char *Str = "")
|
||||
basic_string(const char *Str = "")
|
||||
{
|
||||
this->Length = strlen(Str);
|
||||
this->Capacity = this->Length + 1;
|
||||
this->Data = new char[this->Capacity];
|
||||
strcpy(this->Data, Str);
|
||||
strdbg("%#lx: New string created: \"%s\" (data: %#lx, length: %d, capacity: %d)",
|
||||
strdbg("%#lx: New basic_string created: \"%s\" (data: %#lx, length: %d, capacity: %d)",
|
||||
this, this->Data, this->Data, this->Length, this->Capacity);
|
||||
}
|
||||
|
||||
~string()
|
||||
~basic_string()
|
||||
{
|
||||
strdbg("%#lx: String deleted: \"%s\" (data: %#lx, length: %d, capacity: %d)",
|
||||
this, this->Data, this->Data, this->Length, this->Capacity);
|
||||
@ -164,7 +164,7 @@ namespace std
|
||||
this, this->Data, this->Data, this->Length, this->Capacity);
|
||||
}
|
||||
|
||||
void concat(const string &Other)
|
||||
void concat(const basic_string &Other)
|
||||
{
|
||||
size_t NewLength = this->Length + Other.Length;
|
||||
this->resize(NewLength);
|
||||
@ -218,7 +218,7 @@ namespace std
|
||||
return npos;
|
||||
}
|
||||
|
||||
size_t find(const string &Str, size_t Pos = 0) const
|
||||
size_t find(const basic_string &Str, size_t Pos = 0) const
|
||||
{
|
||||
strdbg("%#lx: String find: \"%s\", %d",
|
||||
this, Str.c_str(), Pos);
|
||||
@ -397,19 +397,19 @@ namespace std
|
||||
return npos;
|
||||
}
|
||||
|
||||
size_t substr(const string &Str, size_t Pos = 0) const
|
||||
size_t substr(const basic_string &Str, size_t Pos = 0) const
|
||||
{
|
||||
strdbg("%#lx: String substr: \"%s\", %d",
|
||||
this, Str.c_str(), Pos);
|
||||
return this->substr(Str.c_str(), Pos);
|
||||
}
|
||||
|
||||
string substr(size_t Pos = 0, size_t Count = npos) const
|
||||
basic_string substr(size_t Pos = 0, size_t Count = npos) const
|
||||
{
|
||||
strdbg("%#lx: String substr: %d, %d",
|
||||
this, Pos, Count);
|
||||
if (Pos >= this->Length)
|
||||
return string();
|
||||
return basic_string();
|
||||
|
||||
if (Count == npos)
|
||||
Count = this->Length - Pos;
|
||||
@ -417,7 +417,7 @@ namespace std
|
||||
if (Pos + Count > this->Length)
|
||||
Count = this->Length - Pos;
|
||||
|
||||
string ret;
|
||||
basic_string ret;
|
||||
ret.resize(Count);
|
||||
for (size_t i = 0; i < Count; i++)
|
||||
ret.Data[i] = this->Data[Pos + i];
|
||||
@ -451,7 +451,7 @@ namespace std
|
||||
this, this->Data, this->Data, this->Length, this->Capacity);
|
||||
}
|
||||
|
||||
void replace(size_t Pos, size_t Count, const string &Str)
|
||||
void replace(size_t Pos, size_t Count, const basic_string &Str)
|
||||
{
|
||||
strdbg("%#lx: String replace: %d, %d, \"%s\"",
|
||||
this, Pos, Count, Str.Data);
|
||||
@ -507,26 +507,25 @@ namespace std
|
||||
this, this->Data, this->Data, this->Length, this->Capacity);
|
||||
}
|
||||
|
||||
|
||||
string operator+(const string &Other) const
|
||||
basic_string operator+(const basic_string &Other) const
|
||||
{
|
||||
string result = *this;
|
||||
basic_string result = *this;
|
||||
result.concat(Other);
|
||||
strdbg("%#lx: String added: \"%s\" (data: %#lx, length: %d, capacity: %d)",
|
||||
this, result.Data, result.Data, result.Length, result.Capacity);
|
||||
return result;
|
||||
}
|
||||
|
||||
string operator+(const char *Other) const
|
||||
basic_string operator+(const char *Other) const
|
||||
{
|
||||
string result = *this;
|
||||
basic_string result = *this;
|
||||
result.concat(Other);
|
||||
strdbg("%#lx: String added: \"%s\" (data: %#lx, length: %d, capacity: %d)",
|
||||
this, result.Data, result.Data, result.Length, result.Capacity);
|
||||
return result;
|
||||
}
|
||||
|
||||
string &operator+=(const string &Other)
|
||||
basic_string &operator+=(const basic_string &Other)
|
||||
{
|
||||
this->concat(Other);
|
||||
strdbg("%#lx: String appended: \"%s\" (data: %#lx, length: %d, capacity: %d)",
|
||||
@ -534,7 +533,7 @@ namespace std
|
||||
return *this;
|
||||
}
|
||||
|
||||
string &operator+=(const char *Other)
|
||||
basic_string &operator+=(const char *Other)
|
||||
{
|
||||
this->concat(Other);
|
||||
strdbg("%#lx: String appended: \"%s\" (data: %#lx, length: %d, capacity: %d)",
|
||||
@ -542,7 +541,7 @@ namespace std
|
||||
return *this;
|
||||
}
|
||||
|
||||
string &operator+=(char Other)
|
||||
basic_string &operator+=(char Other)
|
||||
{
|
||||
const char str[2] = {Other, '\0'};
|
||||
this->concat(str);
|
||||
@ -552,9 +551,9 @@ namespace std
|
||||
}
|
||||
|
||||
/* warning: implicitly-declared 'constexpr String::String(const String&)' is deprecated [-Wdeprecated-copy] */
|
||||
string &operator=(const string &Other) = default;
|
||||
basic_string &operator=(const basic_string &Other) = default;
|
||||
|
||||
// string &operator=(const string &Other)
|
||||
// basic_string &operator=(const basic_string &Other)
|
||||
// {
|
||||
// if (this != &Other)
|
||||
// {
|
||||
@ -568,7 +567,7 @@ namespace std
|
||||
// return *this;
|
||||
// }
|
||||
|
||||
string &operator=(const char *Other)
|
||||
basic_string &operator=(const char *Other)
|
||||
{
|
||||
this->Length = strlen(Other);
|
||||
this->Capacity = this->Length + 1;
|
||||
@ -580,7 +579,7 @@ namespace std
|
||||
return *this;
|
||||
}
|
||||
|
||||
string &operator<<(const string &Other)
|
||||
basic_string &operator<<(const basic_string &Other)
|
||||
{
|
||||
this->concat(Other);
|
||||
strdbg("%#lx: String appended: \"%s\" (data: %#lx, length: %d, capacity: %d)",
|
||||
@ -588,7 +587,7 @@ namespace std
|
||||
return *this;
|
||||
}
|
||||
|
||||
string &operator<<(const char *Other)
|
||||
basic_string &operator<<(const char *Other)
|
||||
{
|
||||
this->concat(Other);
|
||||
strdbg("%#lx: String appended: \"%s\" (data: %#lx, length: %d, capacity: %d)",
|
||||
@ -620,7 +619,7 @@ namespace std
|
||||
return this->Data[Index];
|
||||
}
|
||||
|
||||
bool operator==(const string &Other) const
|
||||
bool operator==(const basic_string &Other) const
|
||||
{
|
||||
strdbg("%#lx: String compared: \"%s\" == \"%s\"",
|
||||
this, this->Data, Other.Data);
|
||||
@ -634,7 +633,7 @@ namespace std
|
||||
return strcmp(this->Data, Other) != 0;
|
||||
}
|
||||
|
||||
bool operator!=(const string &Other) const
|
||||
bool operator!=(const basic_string &Other) const
|
||||
{
|
||||
strdbg("%#lx: String compared: \"%s\" != \"%s\"",
|
||||
this, this->Data, Other.Data);
|
||||
@ -701,6 +700,8 @@ namespace std
|
||||
}
|
||||
};
|
||||
|
||||
typedef basic_string string;
|
||||
|
||||
template <class CharT>
|
||||
class char_traits
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user