PIString/PIChar explicit, support char16_t

This commit is contained in:
2023-07-06 19:59:26 +03:00
parent 8ad2503c5a
commit 61f1a34c14
11 changed files with 132 additions and 73 deletions

View File

@@ -57,9 +57,9 @@ public:
//! \~russian Создает 2-байтный символ из `wchar_t`
PIChar(wchar_t c) { ch = c; }
//! \~english Contructs symbol from system locale and no more than 4 bytes of string
//! \~russian Создает символ из системной локали не более 4 байт длины
explicit PIChar(const char * c, int * bytes = 0);
//! \~english Contructs 2-bytes symbol from `char16_t`
//! \~russian Создает 2-байтный символ из `char16_t`
PIChar(char16_t c) { ch = c; }
//! \~english Copy operator
//! \~russian Оператор присваивания
@@ -177,6 +177,10 @@ public:
//! \~russian Возвращает символ из системной кодировки
static PIChar fromSystem(char c);
//! \~english Returns symbol from system codepage
//! \~russian Возвращает символ из системной кодировки
static PIChar fromSystem(const char * c);
//! \~english Returns symbol from UTF8 codepage
//! \~russian Возвращает символ из UTF8 кодировки
static PIChar fromUTF8(const char * c);
@@ -225,43 +229,6 @@ inline bool operator<=(const char v, const PIChar & c) {
return (PIChar(v) <= c);
}
//! \relatesalso PIChar
//! \~english Compare operator
//! \~russian Оператор сравнения
inline bool operator==(const char * v, const PIChar & c) {
return (PIChar(v) == c);
}
//! \relatesalso PIChar
//! \~english Compare operator
//! \~russian Оператор сравнения
inline bool operator>(const char * v, const PIChar & c) {
return (PIChar(v) > c);
}
//! \relatesalso PIChar
//! \~english Compare operator
//! \~russian Оператор сравнения
inline bool operator<(const char * v, const PIChar & c) {
return (PIChar(v) < c);
}
//! \relatesalso PIChar
//! \~english Compare operator
//! \~russian Оператор сравнения
inline bool operator>=(const char * v, const PIChar & c) {
return (PIChar(v) >= c);
}
//! \relatesalso PIChar
//! \~english Compare operator
//! \~russian Оператор сравнения
inline bool operator<=(const char * v, const PIChar & c) {
return (PIChar(v) <= c);
}
//! \relatesalso PIChar
//! \~english Compare operator
//! \~russian Оператор сравнения