u8stringとstringとwstringをshared_ptrで持ち共有する
More...
#include <webcface/common/encoding.h>
u8stringとstringとwstringをshared_ptrで持ち共有する
- Since
- ver2.0
- See also
- StringInitializer
- 初期状態ではdataがnullptr、またはu8stringのみ値を持ちstringとwstringは空
- コピーするとdataのポインタ(shared_ptr)のみをコピーし、 文字列自体のコピーは発生しない
- SharedStringどうしを比較するときdataポインタが等しければ文字列自体の比較をしない。
- decodeやdecodeWが呼ばれたときdata内部に変換後の文字列を保存する。 一度保存したstringやwstringを別の値に書き換えることはない (のでc_strなどの参照は保持される)
- string→utf8: windowsではusingUTF8(false)の場合ANSIからutf8へエンコーディングの変換を行うが、 usingUTF8(true)の場合なにもせずそのままコピーする。
- utf-8→string: windowsでusingUTF8(false)の場合はANSIに、 それ以外の場合なにもせずそのままコピーする。
- ver2.10〜 staticな生文字列ポインタをstring_viewとして保持することを可能にした。 その場合string_viewの範囲外だがNULL終端であることが保証される。
- ver2.10〜 u8StringView(), decode(), decodeW() はただのstring_viewだが、data()がnull終端文字列であることは保証される。 u8StringViewShare(), decodeShare(), decodeShareW() はshared_ptrのコピーを含みちょっと遅い。
◆ SharedString() [1/3]
◆ SharedString() [2/3]
◆ SharedString() [3/3]
◆ decode()
std::string_view decode |
( |
| ) |
const |
◆ decodeShare()
◆ decodeShareW()
◆ decodeW()
std::wstring_view decodeW |
( |
| ) |
const |
◆ empty()
◆ emptyStr()
const std::string & emptyStr |
( |
| ) |
|
|
static |
◆ emptyStrW()
const std::wstring & emptyStrW |
( |
| ) |
|
|
static |
◆ encode() [1/2]
◆ encode() [2/2]
◆ encodeStatic() [1/2]
◆ encodeStatic() [2/2]
◆ find()
std::size_t find |
( |
char |
c, |
|
|
std::size_t |
pos = 0 |
|
) |
| const |
◆ fromU8String()
◆ fromU8StringStatic()
◆ operator!=()
◆ operator<()
◆ operator<=()
◆ operator==()
◆ operator>()
◆ operator>=()
◆ startsWith() [1/2]
bool startsWith |
( |
char |
str | ) |
const |
◆ startsWith() [2/2]
bool startsWith |
( |
std::string_view |
str | ) |
const |
◆ substr()
SharedString substr |
( |
std::size_t |
pos, |
|
|
std::size_t |
len = std::string::npos |
|
) |
| const |
◆ u8StringView()
std::string_view u8StringView |
( |
| ) |
const |
◆ u8StringViewShare()
The documentation for this class was generated from the following files: