Merge pull request 'добавил const для части контейнеров и explicit для конструкторов' (#176) from const_explicit into master

Reviewed-on: https://git.shs.tools/SHS/pip/pulls/176
This commit was merged in pull request #176.
This commit is contained in:
2023-07-06 20:01:25 +03:00
23 changed files with 379 additions and 289 deletions

View File

@@ -405,6 +405,16 @@ PIString PIString::fromAscii(const char * s, int len) {
}
PIString PIString::fromAscii(const PIByteArray & ascii) {
PIString ret;
ret.resize(ascii.size());
for (int l = 0; l < ret.size_s(); ++l) {
ret[l] = PIChar(ascii[l]);
}
return ret;
}
PIString PIString::fromCodepage(const char * s, const char * c) {
PIString ret;
if (s[0] > '\0')
@@ -573,12 +583,6 @@ PIString & PIString::operator+=(const char * str) {
}
PIString & PIString::operator+=(const PIByteArray & ba) {
appendFromChars((const char *)ba.data(), ba.size_s(), __utf8name__);
return *this;
}
PIString::~PIString() {
deleteData();
}
@@ -594,6 +598,16 @@ PIString & PIString::operator+=(const wchar_t * str) {
}
PIString & PIString::operator+=(const char16_t * str) {
if (!str) return *this;
int i = -1;
while (str[++i]) {
d.push_back(PIChar(str[i]));
}
return *this;
}
PIString & PIString::operator+=(const PIString & str) {
d.append(str.d);
return *this;
@@ -1162,12 +1176,24 @@ int PIString::entries(const PIChar c) const {
}
bool PIString::startsWith(const PIChar c) const {
if (isEmpty()) return false;
return front() == c;
}
bool PIString::startsWith(const PIString & str) const {
if (size() < str.size()) return false;
return str == left(str.size());
}
bool PIString::endsWith(const PIChar c) const {
if (isEmpty()) return false;
return back() == c;
}
bool PIString::endsWith(const PIString & str) const {
if (size() < str.size()) return false;
return str == right(str.size());