13 #pragma managed( push, off )    32         : m_pszBuffer( 
nullptr )
    64         Copy( pszString, nCount );
    84         Copy( pszMbString, nCount );
    89     CString::CString( std::initializer_list< wchar_t const > 
const& rcInitializer ) noexcept
    94         Copy( rcInitializer );
   114         Move( std::move( rcInstance ) );
   140         Move( std::move( rcInstance ) );
   180         Copy( rcInitializer );
   243         wchar_t* result = &ch;
   246             if ( ( 0 > nIndex ) || ( 
m_nCount <= nIndex ) ) {
   287                 wchar_t* pNewBuffer = 
new wchar_t[ nSize ];
   288                 if ( 
nullptr == pNewBuffer ) {
   293                 else for ( 
int nIndex = 0; 
m_nCount > nIndex; ++nIndex ) {
   299                 for ( 
int nIndex = 
m_nCount; nSize > nIndex; ++nIndex ) {
   301                     ::memset( &pNewBuffer[ nIndex ], 0, 
sizeof( 
wchar_t ) );
   376         return Insert( 0, rcInstance );
   386         return Insert( 0, rChar );
   396         return Insert( 0, pszString );
   406         return Insert( 0, pszString, nCount );
   416         return Insert( 0, pszMbString );
   426         return Insert( 0, pszMbString, nCount );
   431     bool CString::Copy( std::initializer_list< wchar_t const > 
const& rcInitializer ) noexcept {
   436         return Insert( 0, rcInitializer );
   454             rcInstance.m_pszBuffer = 
nullptr;
   455             rcInstance.m_nSize   = 0;
   456             rcInstance.m_nCount  = 0;
   510     bool CString::Append( std::initializer_list< wchar_t const > 
const& rcInitializer ) noexcept {
   519         return Insert( nIndex, rcInstance.m_pszBuffer, rcInstance.m_nCount );
   526         return Insert( nIndex, &rChar, 1 );
   536             if ( 
nullptr == pszString ) {
   542             int nCount = 
static_cast< int >( ::wcslen( pszString ) );
   545             result = 
Insert( nIndex, pszString, nCount );
   559             if ( 
nullptr == pszMbString ) {
   565             int nCount = 
static_cast< int >( ::strlen( pszMbString ) );
   568             result = 
Insert( nIndex, pszMbString, nCount );
   582             if ( 
nullptr == pszString ) {
   587             else if ( ( 0 > nIndex ) || ( 
m_nCount < nIndex ) ) {
   592             else if ( 0 > nCount ) {
   608                 for ( ; 0 < nMove; --nMove ) {
   618             wchar_t const* pSrc = pszString;
   620             for ( ; 0 < nCount; --nCount ) {
   640             if ( 
nullptr == pszMbString ) {
   646             int nCount = ::MultiByteToWideChar( CP_ACP, 0, pszMbString, -1, 
nullptr, 0 );
   653             int      nSize     = ( nCount + 1 );
   654             wchar_t* pszBuffer = 
new wchar_t[ nSize ];
   655             if ( 
nullptr == pszBuffer ) {
   662                 if ( nCount != ::MultiByteToWideChar( CP_ACP, 0, pszMbString, -1, pszBuffer, nSize ) ) {
   667                 else if ( !
Insert( nIndex, pszBuffer, nCount ) ) {
   686     bool CString::Insert( 
int nIndex, std::initializer_list< wchar_t const > 
const& rcInitializer ) noexcept {
   691             for ( 
auto pcIter = rcInitializer.begin();; ++pcIter ) {
   693                 if ( rcInitializer.end() == pcIter ) {
   700                 if ( !
Insert( nIndex++, *pcIter ) ) {
   722         return Remove( nIndex, 1 );
   732             if ( ( 0 > nIndex ) || ( 
m_nCount <= nIndex ) ) {
   737             else if ( ( 
m_nCount - nIndex ) < nCount ) {
   743             int nMove = ( 
m_nCount - nIndex - nCount );
   746                 for ( ; 0 < nMove; --nMove, ++nIndex ) {
   753             for ( ; 
m_nCount > nIndex; ++nIndex ) {
   755                 ::memset( &
m_pszBuffer[ nIndex ], 0, 
sizeof( 
wchar_t ) );
   776             if ( ( 0 > nIndex ) || ( 
m_nCount <= nIndex ) ) {
   799             if ( ( 0 > nIndex ) || ( 
m_nCount <= nIndex ) ) {
   822             for ( 
int nIndex = 0; 
m_nCount > nIndex; ++nIndex ) {
   847         return Append( pszString );
   854         return Append( pszString, nCount );
   861         return Append( pszMbString );
   868         return Append( pszMbString, nCount );
   873     bool CString::Push( std::initializer_list< wchar_t const > 
const& rcInitializer ) noexcept {
   875         return Append( rcInitializer );
   910             if ( !
Get( 0, rChar ) ) {
   932         wchar_t const* result = 
nullptr;
   936             va_start( vaArgs, pszFormat );
   953         wchar_t const* result = 
nullptr;
   956             if ( 
nullptr == pszFormat ) {
   962             int nCount = ::_vscwprintf( pszFormat, vaArgs );
   977             else if ( nCount != ::vswprintf_s( 
m_pszBuffer, ( nCount + 1 ), pszFormat, vaArgs ) ) {
   994 #pragma managed( pop ) virtual bool Remove() noexcept
削除関数 
virtual bool Insert(int nIndex, std::initializer_list< wchar_t const  > const &rcInitializer) noexcept
挿入関数 
virtual bool Move(CString &&rcInstance) noexcept
ムーブ関数 
virtual bool Push(wchar_t const &rChar) noexcept
プッシュ関数 
virtual ~CString() noexcept
デストラクタ 
wchar_t * m_pszBuffer
文字列ポインタ 
virtual bool Copy(CString const &rcInstance) noexcept
コピー関数 
virtual bool CreateBuffer(int nSize) noexcept
バッファ作成関数 
virtual bool Insert(int nIndex, CString const &rcInstance) noexcept
挿入関数 
virtual bool Append(CString const &rcInstance) noexcept
追加関数 
CString() noexcept
コンストラクタ 
virtual bool Get(int nIndex, wchar_t &rChar) const  noexcept
取得関数 
virtual CString & operator+=(CString const &rcInstance) noexcept
加算代入演算子オーバーロード関数 
virtual CString & operator=(CString const &rcInstance) noexcept
コピー代入演算子オーバーロード関数 
virtual wchar_t const * Format(wchar_t const *pszFormat,...) noexcept
書式設定文字列代入関数 
virtual bool CompactBuffer() noexcept
バッファサイズコンパクト化関数 
virtual bool Set(int nIndex, wchar_t const &rChar) noexcept
設定関数 
virtual bool UpdateBuffer(int nCount) noexcept
バッファサイズ更新関数 
virtual bool Pop(wchar_t &rChar) noexcept
ポップ関数 
virtual int GetSegmentSize() const  noexcept
セグメントサイズ取得関数 
virtual void Clear() noexcept
クリア関数 
virtual wchar_t & operator[](int nIndex) noexcept
配列添字演算子オーバーロード関数 
virtual bool PopFront(wchar_t &rChar) noexcept
ポップフロント関数 
virtual int Find(wchar_t const &rChar) const  noexcept
検索関数 
virtual wchar_t const * FormatArgs(wchar_t const *pszFormat, va_list vaArgs) noexcept
引数リスト書式設定文字列代入関数