WebCFace 2.5.2
Web-based Communication Framework & Dashboard-like UI
Loading...
Searching...
No Matches
SharedString Class Reference

u8stringとstringとwstringをshared_ptrで持ち共有する More...

#include <webcface/common/encoding.h>

Classes

struct  Hash
 

Public Member Functions

 SharedString ()
 
 SharedString (std::nullptr_t)
 
 SharedString (std::shared_ptr< internal::SharedStringData > &&data)
 
const std::string & u8String () const
 
std::string_view u8StringView () const
 
const std::string & decode () const
 
const std::wstring & decodeW () const
 
bool empty () const
 
bool startsWith (std::string_view str) const
 
bool startsWith (char str) const
 
bool operator== (const SharedString &other) const
 
bool operator<= (const SharedString &other) const
 
bool operator>= (const SharedString &other) const
 
bool operator!= (const SharedString &other) const
 
bool operator< (const SharedString &other) const
 
bool operator> (const SharedString &other) const
 

Static Public Member Functions

static SharedString fromU8String (std::string_view u8s)
 
static SharedString encode (std::string_view s)
 
static SharedString encode (std::wstring_view ws, std::string_view s=std::string_view())
 
static const std::string & emptyStr ()
 
static const std::wstring & emptyStrW ()
 

Detailed Description

u8stringとstringとwstringをshared_ptrで持ち共有する

Since
ver2.0
  • 初期状態では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に、 それ以外の場合なにもせずそのままコピーする。

Constructor & Destructor Documentation

◆ SharedString() [1/3]

SharedString ( )
inline

◆ SharedString() [2/3]

SharedString ( std::nullptr_t  )
inline

◆ SharedString() [3/3]

SharedString ( std::shared_ptr< internal::SharedStringData > &&  data)
explicit

Member Function Documentation

◆ decode()

const std::string & decode ( ) const

◆ decodeW()

const std::wstring & decodeW ( ) const

◆ empty()

bool empty ( ) const

◆ emptyStr()

const std::string & emptyStr ( )
static

◆ emptyStrW()

const std::wstring & emptyStrW ( )
static

◆ encode() [1/2]

SharedString encode ( std::string_view  s)
static

◆ encode() [2/2]

SharedString encode ( std::wstring_view  ws,
std::string_view  s = std::string_view() 
)
static

◆ fromU8String()

SharedString fromU8String ( std::string_view  u8s)
static

◆ operator!=()

bool operator!= ( const SharedString other) const

◆ operator<()

bool operator< ( const SharedString other) const

◆ operator<=()

bool operator<= ( const SharedString other) const

◆ operator==()

bool operator== ( const SharedString other) const

◆ operator>()

bool operator> ( const SharedString other) const

◆ operator>=()

bool operator>= ( const SharedString other) const

◆ startsWith() [1/2]

bool startsWith ( char  str) const

◆ startsWith() [2/2]

bool startsWith ( std::string_view  str) const

◆ u8String()

const std::string & u8String ( ) const

◆ u8StringView()

std::string_view u8StringView ( ) const

The documentation for this class was generated from the following files: