Implemented something like a console (still WIP).
This commit is contained in:
@@ -78,6 +78,15 @@ public:
|
||||
}
|
||||
constexpr basic_string& operator=(std::nullptr_t) = delete;
|
||||
|
||||
constexpr basic_string& operator+=(value_type chr) noexcept
|
||||
{
|
||||
return append(chr);
|
||||
}
|
||||
constexpr basic_string& operator+=(const basic_string& other) noexcept
|
||||
{
|
||||
return append(other);
|
||||
}
|
||||
|
||||
[[nodiscard]] constexpr reference operator[](size_type pos) noexcept { return _data[pos]; }
|
||||
[[nodiscard]] constexpr const_reference operator[](size_type pos) const noexcept { return _data[pos]; }
|
||||
|
||||
@@ -88,8 +97,8 @@ public:
|
||||
[[nodiscard]] constexpr reference front() noexcept { return _data.front(); }
|
||||
[[nodiscard]] constexpr const_reference front() const noexcept { return _data.front(); }
|
||||
|
||||
[[nodiscard]] constexpr reference back() noexcept { return _data.back(); }
|
||||
[[nodiscard]] constexpr const_reference back() const noexcept { return _data.back(); }
|
||||
[[nodiscard]] constexpr reference back() noexcept { return _data.at(size() - 1); }
|
||||
[[nodiscard]] constexpr const_reference back() const noexcept { return _data.at(size() - 1); }
|
||||
|
||||
[[nodiscard]] constexpr pointer data() noexcept { return _data.data(); }
|
||||
[[nodiscard]] constexpr const_pointer data() const noexcept { return _data.data(); }
|
||||
@@ -117,6 +126,29 @@ public:
|
||||
_data.back() = value_type(0);
|
||||
}
|
||||
|
||||
constexpr basic_string& append(value_type chr) noexcept
|
||||
{
|
||||
_data.back() = chr;
|
||||
_data.push_back(value_type());
|
||||
return *this;
|
||||
}
|
||||
constexpr basic_string& append(const basic_string& other) noexcept
|
||||
{
|
||||
_data.reserve(_data.size() + other.size());
|
||||
_data.resize(_data.size() - 1);
|
||||
for (char chr : other)
|
||||
{
|
||||
_data.push_back(chr);
|
||||
}
|
||||
_data.push_back(value_type());
|
||||
return *this;
|
||||
}
|
||||
constexpr void pop_back() noexcept
|
||||
{
|
||||
_data.pop_back();
|
||||
_data.back() = value_type();
|
||||
}
|
||||
|
||||
static inline size_type npos = size_type(-1);
|
||||
};
|
||||
using string = basic_string<char>;
|
||||
|
||||
Reference in New Issue
Block a user