Solution46
LibCommon::CArray< Type > クラステンプレート

配列クラス [詳解]

#include "CArray.h"

LibCommon::CArray< Type > の継承関係図
Inheritance graph
LibCommon::CArray< Type > 連携図
Collaboration graph

公開メンバ関数

 CArray () noexcept
 コンストラクタ [詳解]
 
 CArray (Type const &rElement) noexcept
 コンストラクタ [詳解]
 
 CArray (Type const *pBuffer, int nCount) noexcept
 コンストラクタ [詳解]
 
 CArray (std::initializer_list< Type const > const &rcInitializer) noexcept
 コンストラクタ [詳解]
 
 CArray (CArray const &rcInstance) noexcept
 コピーコンストラクタ [詳解]
 
 CArray (CArray &&rcInstance) noexcept
 ムーブコンストラクタ [詳解]
 
virtual ~CArray () noexcept
 デストラクタ [詳解]
 
virtual Type * GetBuffer () noexcept
 配列要素バッファ取得関数 [詳解]
 
virtual int GetSize () const noexcept
 バッファサイズ取得関数 [詳解]
 
virtual int GetCount () const noexcept
 配列要素数取得関数 [詳解]
 
virtual int GetSegmentSize () const noexcept
 セグメントサイズ取得関数 [詳解]
 
virtual CArrayoperator= (CArray const &rcInstance) noexcept
 コピー代入演算子オーバーロード関数 [詳解]
 
virtual CArrayoperator= (CArray &&rcInstance) noexcept
 ムーブ代入演算子オーバーロード関数 [詳解]
 
virtual CArrayoperator= (Type const &rElement) noexcept
 代入演算子オーバーロード関数 [詳解]
 
virtual CArrayoperator= (std::initializer_list< Type const > const &rcInitializer) noexcept
 代入演算子オーバーロード関数 [詳解]
 
virtual CArrayoperator+= (CArray const &rcInstance) noexcept
 加算代入演算子オーバーロード関数 [詳解]
 
virtual CArrayoperator+= (Type const &rElement) noexcept
 加算代入演算子オーバーロード関数 [詳解]
 
virtual CArrayoperator+= (std::initializer_list< Type const > const &rcInitializer) noexcept
 加算代入演算子オーバーロード関数 [詳解]
 
virtual Type & operator[] (int nIndex) noexcept
 配列添字演算子オーバーロード関数 [詳解]
 
virtual operator Type const * () noexcept
 配列要素ポインタキャスト演算子オーバーロード関数 [詳解]
 
virtual CArrayoperator() () noexcept
 関数演算子オーバーロード関数 [詳解]
 
virtual void Clear () noexcept
 クリア関数 [詳解]
 
virtual bool CreateBuffer (int nSize) noexcept
 バッファ作成関数 [詳解]
 
virtual bool UpdateBuffer (int nCount) noexcept
 バッファサイズ更新関数 [詳解]
 
virtual bool CompactBuffer () noexcept
 バッファサイズコンパクト化関数 [詳解]
 
virtual bool Copy (CArray const &rcInstance) noexcept
 コピー関数 [詳解]
 
virtual bool Copy (Type const &rElement) noexcept
 コピー関数 [詳解]
 
virtual bool Copy (Type const *pBuffer, int nCount) noexcept
 コピー関数 [詳解]
 
virtual bool Copy (std::initializer_list< Type const > const &rcInitializer) noexcept
 コピー関数 [詳解]
 
virtual bool Move (CArray &&rcInstance) noexcept
 ムーブ関数 [詳解]
 
virtual bool Append (CArray const &rcInstance) noexcept
 追加関数 [詳解]
 
virtual bool Append (Type const &rElement) noexcept
 追加関数 [詳解]
 
virtual bool Append (Type const *pBuffer, int nCount) noexcept
 追加関数 [詳解]
 
virtual bool Append (std::initializer_list< Type const > const &rcInitializer) noexcept
 追加関数 [詳解]
 
virtual bool Insert (int nIndex, CArray const &rcInstance) noexcept
 挿入関数 [詳解]
 
virtual bool Insert (int nIndex, Type const &rElement) noexcept
 挿入関数 [詳解]
 
virtual bool Insert (int nIndex, Type const *pBuffer, int nCount) noexcept
 挿入関数 [詳解]
 
virtual bool Insert (int nIndex, std::initializer_list< Type const > const &rcInitializer) noexcept
 挿入関数 [詳解]
 
virtual bool Remove () noexcept
 削除関数 [詳解]
 
virtual bool Remove (int nIndex) noexcept
 削除関数 [詳解]
 
virtual bool Remove (int nIndex, int nCount) noexcept
 削除関数 [詳解]
 
virtual bool Get (int nIndex, Type &rElement) const noexcept
 取得関数 [詳解]
 
virtual bool Set (int nIndex, Type const &rElement) noexcept
 設定関数 [詳解]
 
virtual int Find (Type const &rElement) const noexcept
 検索関数 [詳解]
 
virtual bool Compare (Type const &rElement1, Type const &rElement2) const noexcept
 比較関数 [詳解]
 
virtual bool Push (Type const &rElement) noexcept
 プッシュ関数 [詳解]
 
virtual bool Push (Type const *pBuffer, int nCount) noexcept
 プッシュ関数 [詳解]
 
virtual bool Push (std::initializer_list< Type const > const &rcInitializer) noexcept
 プッシュ関数 [詳解]
 
virtual bool Pop (Type &rElement) noexcept
 ポップ関数 [詳解]
 
virtual bool PopFront (Type &rElement) noexcept
 ポップフロント関数 [詳解]
 

静的公開変数類

static int const SEGMENT_SIZE = 256
 セグメントサイズ初期値 [詳解]
 

限定公開変数類

Type * m_pBuffer
 バッファポインタ [詳解]
 
int m_nSize
 バッファサイズ [詳解]
 
int m_nCount
 要素数 [詳解]
 

詳解

template<typename Type>
class LibCommon::CArray< Type >

配列クラス

配列クラスです。

テンプレート引数
Type配列要素型
注意
テンプレートクラスです。

CArray.h33 行目に定義があります。

構築子と解体子

template<typename Type >
LibCommon::CArray< Type >::CArray ( )
explicitnoexcept

コンストラクタ

コンストラクタです。

引数
なし
戻り値
なし
注意
なし

CArray.hpp31 行目に定義があります。

33  : m_pBuffer( nullptr )
34  , m_nSize( 0 )
35  , m_nCount( 0 )
36  {}
int m_nCount
要素数
Definition: CArray.h:669
int m_nSize
バッファサイズ
Definition: CArray.h:668
Type * m_pBuffer
バッファポインタ
Definition: CArray.h:667
template<typename Type>
LibCommon::CArray< Type >::CArray ( Type const &  rElement)
explicitnoexcept

コンストラクタ

コンストラクタです。

引数
[in]rElement配列要素参照
戻り値
なし
注意
なし

CArray.hpp41 行目に定義があります。

43  : CArray()
44  {
45  // コピーする
46  Copy( rElement );
47  }
CArray() noexcept
コンストラクタ
Definition: CArray.hpp:31
virtual bool Copy(CArray const &rcInstance) noexcept
コピー関数
Definition: CArray.hpp:321
template<typename Type>
LibCommon::CArray< Type >::CArray ( Type const *  pBuffer,
int  nCount 
)
explicitnoexcept

コンストラクタ

コンストラクタです。

引数
[in]pBufferバッファポインタ
[in]nCount配列要素数
戻り値
なし
注意
なし

CArray.hpp52 行目に定義があります。

54  : CArray()
55  {
56  // コピーする
57  Copy( pBuffer, nCount );
58  }
CArray() noexcept
コンストラクタ
Definition: CArray.hpp:31
virtual bool Copy(CArray const &rcInstance) noexcept
コピー関数
Definition: CArray.hpp:321
template<typename Type>
LibCommon::CArray< Type >::CArray ( std::initializer_list< Type const > const &  rcInitializer)
explicitnoexcept

コンストラクタ

コンストラクタです。

引数
[in]rcInitializer配列要素初期化子リスト参照
戻り値
なし
注意
なし

CArray.hpp63 行目に定義があります。

65  : CArray()
66  {
67  // コピーする
68  Copy( rcInitializer );
69  }
CArray() noexcept
コンストラクタ
Definition: CArray.hpp:31
virtual bool Copy(CArray const &rcInstance) noexcept
コピー関数
Definition: CArray.hpp:321
template<typename Type>
LibCommon::CArray< Type >::CArray ( CArray< Type > const &  rcInstance)
explicitnoexcept

コピーコンストラクタ

コピーコンストラクタです。

引数
[in]rcInstanceインスタンス参照
戻り値
なし
注意
なし

CArray.hpp74 行目に定義があります。

76  : CArray()
77  {
78  // コピーする
79  Copy( rcInstance );
80  }
CArray() noexcept
コンストラクタ
Definition: CArray.hpp:31
virtual bool Copy(CArray const &rcInstance) noexcept
コピー関数
Definition: CArray.hpp:321
template<typename Type>
LibCommon::CArray< Type >::CArray ( CArray< Type > &&  rcInstance)
explicitnoexcept

ムーブコンストラクタ

ムーブコンストラクタです。

引数
[in]rcInstanceインスタンス左辺値参照
戻り値
なし
注意
なし

CArray.hpp85 行目に定義があります。

87  : CArray()
88  {
89  // ムーブする
90  Move( std::move( rcInstance ) );
91  }
virtual bool Move(CArray &&rcInstance) noexcept
ムーブ関数
Definition: CArray.hpp:365
CArray() noexcept
コンストラクタ
Definition: CArray.hpp:31
template<typename Type >
LibCommon::CArray< Type >::~CArray ( )
virtualnoexcept

デストラクタ

デストラクタです。

引数
なし
戻り値
なし
注意
なし

CArray.hpp96 行目に定義があります。

96  {
97  // クリアする
98  Clear();
99  }
virtual void Clear() noexcept
クリア関数
Definition: CArray.hpp:209

関数詳解

template<typename Type>
virtual Type* LibCommon::CArray< Type >::GetBuffer ( )
inlinevirtualnoexcept

配列要素バッファ取得関数

配列要素バッファ取得関数です。

引数
なし
戻り値
バッファポインタ
注意
なし

CArray.h127 行目に定義があります。

参照元 LibWindow::CWndMain::CreateToolBar().

127 { return m_pBuffer; }
Type * m_pBuffer
バッファポインタ
Definition: CArray.h:667

被呼び出し関係図:

template<typename Type>
virtual int LibCommon::CArray< Type >::GetSize ( ) const
inlinevirtualnoexcept

バッファサイズ取得関数

バッファサイズ取得関数です。

引数
なし
戻り値
バッファサイズ
注意
なし

CArray.h138 行目に定義があります。

138 { return m_nSize; }
int m_nSize
バッファサイズ
Definition: CArray.h:668
template<typename Type>
virtual int LibCommon::CArray< Type >::GetSegmentSize ( ) const
inlinevirtualnoexcept

セグメントサイズ取得関数

セグメントサイズ取得関数です。

引数
なし
戻り値
セグメントサイズ
注意
なし

CArray.h160 行目に定義があります。

160 { return SEGMENT_SIZE; }
static int const SEGMENT_SIZE
セグメントサイズ初期値
Definition: CArray.h:674
template<typename Type >
CArray< Type > & LibCommon::CArray< Type >::operator= ( CArray< Type > const &  rcInstance)
virtualnoexcept

コピー代入演算子オーバーロード関数

コピー代入演算子オーバーロード関数です。

引数
[in]rcInstanceインスタンス参照
戻り値
インスタンス参照
注意
なし

CArray.hpp106 行目に定義があります。

参照元 LibCommon::CArray< CJson * >::GetSegmentSize().

106  {
107  // コピーする
108  Copy( rcInstance );
109 
110  // インスタンス参照を返す
111  return *this;
112  }
virtual bool Copy(CArray const &rcInstance) noexcept
コピー関数
Definition: CArray.hpp:321

被呼び出し関係図:

template<typename Type >
CArray< Type > & LibCommon::CArray< Type >::operator= ( CArray< Type > &&  rcInstance)
virtualnoexcept

ムーブ代入演算子オーバーロード関数

ムーブ代入演算子オーバーロード関数です。

引数
[in]rcInstanceインスタンス左辺値参照
戻り値
インスタンス参照
注意
なし

CArray.hpp117 行目に定義があります。

117  {
118  // ムーブする
119  Move( std::move( rcInstance ) );
120 
121  // インスタンス参照を返す
122  return *this;
123  }
virtual bool Move(CArray &&rcInstance) noexcept
ムーブ関数
Definition: CArray.hpp:365
template<typename Type>
CArray< Type > & LibCommon::CArray< Type >::operator= ( Type const &  rElement)
virtualnoexcept

代入演算子オーバーロード関数

代入演算子オーバーロード関数です。

引数
[in]rElement配列要素参照
戻り値
インスタンス参照
注意
なし

CArray.hpp128 行目に定義があります。

128  {
129  // コピーする
130  Copy( rElement );
131 
132  // インスタンス参照を返す
133  return *this;
134  }
virtual bool Copy(CArray const &rcInstance) noexcept
コピー関数
Definition: CArray.hpp:321
template<typename Type>
CArray< Type > & LibCommon::CArray< Type >::operator= ( std::initializer_list< Type const > const &  rcInitializer)
virtualnoexcept

代入演算子オーバーロード関数

代入演算子オーバーロード関数です。

引数
[in]rcInitializer配列要素初期化子リスト参照
注意
なし

CArray.hpp139 行目に定義があります。

139  {
140  // コピーする
141  Copy( rcInitializer );
142 
143  // インスタンス参照を返す
144  return *this;
145  }
virtual bool Copy(CArray const &rcInstance) noexcept
コピー関数
Definition: CArray.hpp:321
template<typename Type >
CArray< Type > & LibCommon::CArray< Type >::operator+= ( CArray< Type > const &  rcInstance)
virtualnoexcept

加算代入演算子オーバーロード関数

加算代入演算子オーバーロード関数です。

引数
[in]rcInstanceインスタンス参照
戻り値
インスタンス参照
注意
なし

CArray.hpp150 行目に定義があります。

参照元 LibCommon::CArray< CJson * >::GetSegmentSize().

150  {
151  // 追加する
152  Append( rcInstance );
153 
154  // インスタンス参照を返す
155  return *this;
156  }
virtual bool Append(CArray const &rcInstance) noexcept
追加関数
Definition: CArray.hpp:393

被呼び出し関係図:

template<typename Type>
CArray< Type > & LibCommon::CArray< Type >::operator+= ( Type const &  rElement)
virtualnoexcept

加算代入演算子オーバーロード関数

加算代入演算子オーバーロード関数です。

引数
[in]rElement配列要素参照
戻り値
インスタンス参照
注意
なし

CArray.hpp161 行目に定義があります。

161  {
162  // 追加する
163  Append( rElement );
164 
165  // インスタンス参照を返す
166  return *this;
167  }
virtual bool Append(CArray const &rcInstance) noexcept
追加関数
Definition: CArray.hpp:393
template<typename Type>
CArray< Type > & LibCommon::CArray< Type >::operator+= ( std::initializer_list< Type const > const &  rcInitializer)
virtualnoexcept

加算代入演算子オーバーロード関数

加算代入演算子オーバーロード関数です。

引数
[in]rcInitializer配列要素初期化子リスト参照
戻り値
インスタンス参照
注意
なし

CArray.hpp172 行目に定義があります。

172  {
173  // 追加する
174  Append( rcInitializer );
175 
176  // インスタンス参照を返す
177  return *this;
178  }
virtual bool Append(CArray const &rcInstance) noexcept
追加関数
Definition: CArray.hpp:393
template<typename Type >
Type & LibCommon::CArray< Type >::operator[] ( int  nIndex)
virtualnoexcept

配列添字演算子オーバーロード関数

配列添字演算子オーバーロード関数です。

引数
[in]nIndexインデックス
戻り値
配列要素参照
注意
なし

CArray.hpp183 行目に定義があります。

参照元 LibCommon::CArray< CJson * >::GetSegmentSize().

183  {
184  // 静的配列要素
185  static Type element;
186 
187  // 処理ブロック
188  Type* result = &element;
189  do {
190  // インデックスを調べる
191  if ( ( 0 > nIndex ) || ( m_nCount <= nIndex ) ) {
192  // 失敗!
193  break;
194  }
195 
196  // 成功!
197  result = &m_pBuffer[ nIndex ];
198  } while ( false );
199 
200  // 実行結果を返す
201  return *result;
202  }
int m_nCount
要素数
Definition: CArray.h:669
Type * m_pBuffer
バッファポインタ
Definition: CArray.h:667

被呼び出し関係図:

template<typename Type>
virtual LibCommon::CArray< Type >::operator Type const * ( )
inlinevirtualnoexcept

配列要素ポインタキャスト演算子オーバーロード関数

配列要素ポインタキャスト演算子オーバーロード関数です。

引数
なし
戻り値
配列要素ポインタ
注意
なし

CArray.h261 行目に定義があります。

参照先 LibCommon::CArray< Type >::m_pBuffer.

261 { return m_pBuffer; }
Type * m_pBuffer
バッファポインタ
Definition: CArray.h:667
template<typename Type>
virtual CArray& LibCommon::CArray< Type >::operator() ( )
inlinevirtualnoexcept

関数演算子オーバーロード関数

関数演算子オーバーロード関数です。

引数
なし
戻り値
インスタンス参照
注意
なし

CArray.h272 行目に定義があります。

272 { return *this; }
template<typename Type >
void LibCommon::CArray< Type >::Clear ( )
virtualnoexcept

クリア関数

クリア関数です。

引数
なし
戻り値
なし
注意
なし

LibWindow::CWndListで再実装されています。

CArray.hpp209 行目に定義があります。

参照元 LibWindow::CWndList::Clear(), LibJson::CJsonToken::ClearJson(), LibJson::CJson::ClearJson(), LibCommon::CArray< CJson * >::operator()().

209  {
210  // バッファを削除する
211  delete[] m_pBuffer;
212 
213  // メンバ変数を初期化する
214  m_pBuffer = nullptr;
215  m_nSize = 0;
216  m_nCount = 0;
217  }
int m_nCount
要素数
Definition: CArray.h:669
int m_nSize
バッファサイズ
Definition: CArray.h:668
Type * m_pBuffer
バッファポインタ
Definition: CArray.h:667

被呼び出し関係図:

template<typename Type >
bool LibCommon::CArray< Type >::CreateBuffer ( int  nSize)
virtualnoexcept

バッファ作成関数

バッファ作成関数です。

引数
[in]nSizeバッファサイズ
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp222 行目に定義があります。

参照元 LibCommon::CArray< CJson * >::operator()().

222  {
223  // 処理ブロック
224  bool result = false;
225  do {
226  // バッファサイズを調べる
227  if ( m_nCount > nSize ) {
228  // 失敗!
229  break;
230  }
231  // バッファサイズを調べる
232  else if ( m_nSize != nSize ) {
233  // 新規バッファを作成する
234  Type* pNewBuffer = new Type[ nSize ];
235  if ( nullptr == pNewBuffer ) {
236  // 失敗!
237  break;
238  }
239  // 巡回する
240  else for ( int nIndex = 0; m_nCount > nIndex; ++nIndex ) {
241  // 配列要素をコピーする
242  pNewBuffer[ nIndex ] = m_pBuffer[ nIndex ];
243  }
244 
245  // 巡回する
246  for ( int nIndex = m_nCount; nSize > nIndex; ++nIndex ) {
247  // 配列要素をクリアする
248  ::memset( &pNewBuffer[ nIndex ], 0, sizeof( Type ) );
249  }
250 
251  // 既存バッファを削除する
252  delete[] m_pBuffer;
253 
254  // バッファポインタとバッファサイズを設定する
255  m_pBuffer = pNewBuffer;
256  m_nSize = nSize;
257  }
258 
259  // 成功!
260  result = true;
261  } while ( false );
262 
263  // 実行結果を返す
264  return result;
265  }
int m_nCount
要素数
Definition: CArray.h:669
int m_nSize
バッファサイズ
Definition: CArray.h:668
Type * m_pBuffer
バッファポインタ
Definition: CArray.h:667

被呼び出し関係図:

template<typename Type >
bool LibCommon::CArray< Type >::UpdateBuffer ( int  nCount)
virtualnoexcept

バッファサイズ更新関数

バッファサイズ更新関数です。

引数
[in]nCount配列要素数
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp270 行目に定義があります。

参照元 LibCommon::CArray< CJson * >::operator()().

270  {
271  // 処理ブロック
272  bool result = false;
273  do {
274  // 配列要素数とバッファサイズを比較する
275  if ( m_nSize < nCount ) {
276  // 終端配列要素分を追加したセグメント単位のバッファサイズを取得する
277  int nSize = ( ( nCount + GetSegmentSize() ) / GetSegmentSize() * GetSegmentSize() );
278 
279  // バッファを作成する
280  if ( !CreateBuffer( nSize ) ) {
281  // 失敗!
282  break;
283  }
284  }
285 
286  // 成功!
287  result = true;
288  } while ( false );
289 
290  // 実行結果を返す
291  return result;
292  }
virtual bool CreateBuffer(int nSize) noexcept
バッファ作成関数
Definition: CArray.hpp:222
virtual int GetSegmentSize() const noexcept
セグメントサイズ取得関数
Definition: CArray.h:160
int m_nSize
バッファサイズ
Definition: CArray.h:668

被呼び出し関係図:

template<typename Type >
bool LibCommon::CArray< Type >::CompactBuffer ( )
virtualnoexcept

バッファサイズコンパクト化関数

バッファサイズコンパクト化関数です。

引数
なし
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp297 行目に定義があります。

参照元 LibJson::CJsonToken::CompactJson(), LibJson::CJson::CompactJson(), LibCommon::CArray< CJson * >::operator()().

297  {
298  // 処理ブロック
299  bool result = false;
300  do {
301  // バッファサイズとバッファカウントを比較する
302  if ( m_nSize > m_nCount ) {
303  // バッファを作成する
304  if ( !CreateBuffer( m_nCount ) ) {
305  // 失敗!
306  break;
307  }
308  }
309 
310  // 成功!
311  result = true;
312  } while ( false );
313 
314  // 実行結果を返す
315  return result;
316  }
virtual bool CreateBuffer(int nSize) noexcept
バッファ作成関数
Definition: CArray.hpp:222
int m_nCount
要素数
Definition: CArray.h:669
int m_nSize
バッファサイズ
Definition: CArray.h:668

被呼び出し関係図:

template<typename Type >
bool LibCommon::CArray< Type >::Copy ( CArray< Type > const &  rcInstance)
virtualnoexcept

コピー関数

コピー関数です。

引数
[in]rcInstanceインスタンス参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp321 行目に定義があります。

参照元 LibCommon::CArray< CJson * >::operator()().

321  {
322  // クリアする
323  Clear();
324 
325  // 挿入する
326  return Insert( 0, rcInstance );
327  }
virtual void Clear() noexcept
クリア関数
Definition: CArray.hpp:209
virtual bool Insert(int nIndex, CArray const &rcInstance) noexcept
挿入関数
Definition: CArray.hpp:425

被呼び出し関係図:

template<typename Type>
bool LibCommon::CArray< Type >::Copy ( Type const &  rElement)
virtualnoexcept

コピー関数

コピー関数です。

引数
[in]rElement配列要素参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp332 行目に定義があります。

332  {
333  // クリアする
334  Clear();
335 
336  // 挿入する
337  return Insert( 0, rElement );
338  }
virtual void Clear() noexcept
クリア関数
Definition: CArray.hpp:209
virtual bool Insert(int nIndex, CArray const &rcInstance) noexcept
挿入関数
Definition: CArray.hpp:425
template<typename Type>
bool LibCommon::CArray< Type >::Copy ( Type const *  pBuffer,
int  nCount 
)
virtualnoexcept

コピー関数

コピー関数です。

引数
[in]pBufferバッファポインタ
[in]nCount配列要素数
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp343 行目に定義があります。

343  {
344  // クリアする
345  Clear();
346 
347  // 挿入する
348  return Insert( 0, pBuffer, nCount );
349  }
virtual void Clear() noexcept
クリア関数
Definition: CArray.hpp:209
virtual bool Insert(int nIndex, CArray const &rcInstance) noexcept
挿入関数
Definition: CArray.hpp:425
template<typename Type>
bool LibCommon::CArray< Type >::Copy ( std::initializer_list< Type const > const &  rcInitializer)
virtualnoexcept

コピー関数

コピー関数です。

引数
[in]rcInitializer配列要素初期化子リスト参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp354 行目に定義があります。

354  {
355  // クリアする
356  Clear();
357 
358  // 挿入する
359  return Insert( 0, rcInitializer );
360  }
virtual void Clear() noexcept
クリア関数
Definition: CArray.hpp:209
virtual bool Insert(int nIndex, CArray const &rcInstance) noexcept
挿入関数
Definition: CArray.hpp:425
template<typename Type >
bool LibCommon::CArray< Type >::Move ( CArray< Type > &&  rcInstance)
virtualnoexcept

ムーブ関数

ムーブ関数です。

引数
[in]rcInstanceインスタンス左辺値参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp365 行目に定義があります。

参照元 LibCommon::CArray< CJson * >::operator()().

365  {
366  // 処理ブロック
367  bool result = false;
368  do {
369  // クリアする
370  Clear();
371 
372  // メンバ変数をコピーする
373  m_pBuffer = rcInstance.m_pBuffer;
374  m_nSize = rcInstance.m_nSize;
375  m_nCount = rcInstance.m_nCount;
376 
377  // ムーブ元インスタンスのメンバ変数を初期化する
378  rcInstance.m_pBuffer = nullptr;
379  rcInstance.m_nSize = 0;
380  rcInstance.m_nCount = 0;
381 
382  // 成功!
383  result = true;
384  } while ( false );
385 
386  // 実行結果を返す
387  return result;
388  }
virtual void Clear() noexcept
クリア関数
Definition: CArray.hpp:209
int m_nCount
要素数
Definition: CArray.h:669
int m_nSize
バッファサイズ
Definition: CArray.h:668
Type * m_pBuffer
バッファポインタ
Definition: CArray.h:667

被呼び出し関係図:

template<typename Type >
bool LibCommon::CArray< Type >::Append ( CArray< Type > const &  rcInstance)
virtualnoexcept

追加関数

追加関数です。

引数
[in]rcInstanceインスタンス参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp393 行目に定義があります。

参照元 LibWindow::CWndList::AppendElementWindow(), LibWindow::CWndMain::CreateToolBarButtonList(), LibWindow::CWndList::InitElementListConfig(), LibCommon::CArray< CJson * >::operator()().

393  {
394  // 挿入する
395  return Insert( m_nCount, rcInstance );
396  }
int m_nCount
要素数
Definition: CArray.h:669
virtual bool Insert(int nIndex, CArray const &rcInstance) noexcept
挿入関数
Definition: CArray.hpp:425

被呼び出し関係図:

template<typename Type>
bool LibCommon::CArray< Type >::Append ( Type const &  rElement)
virtualnoexcept

追加関数

追加関数です。

引数
[in]rElement配列要素参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp401 行目に定義があります。

401  {
402  // 挿入する
403  return Insert( m_nCount, rElement );
404  }
int m_nCount
要素数
Definition: CArray.h:669
virtual bool Insert(int nIndex, CArray const &rcInstance) noexcept
挿入関数
Definition: CArray.hpp:425
template<typename Type>
bool LibCommon::CArray< Type >::Append ( Type const *  pBuffer,
int  nCount 
)
virtualnoexcept

追加関数

追加関数です。

引数
[in]pBufferバッファポインタ
[in]nCount配列要素数
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp409 行目に定義があります。

409  {
410  // 挿入する
411  return Insert( m_nCount, pBuffer, nCount );
412  }
int m_nCount
要素数
Definition: CArray.h:669
virtual bool Insert(int nIndex, CArray const &rcInstance) noexcept
挿入関数
Definition: CArray.hpp:425
template<typename Type>
bool LibCommon::CArray< Type >::Append ( std::initializer_list< Type const > const &  rcInitializer)
virtualnoexcept

追加関数

追加関数です。

引数
[in]rcInitializer配列要素初期化子リスト参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp417 行目に定義があります。

417  {
418  // 挿入する
419  return Insert( m_nCount, rcInitializer );
420  }
int m_nCount
要素数
Definition: CArray.h:669
virtual bool Insert(int nIndex, CArray const &rcInstance) noexcept
挿入関数
Definition: CArray.hpp:425
template<typename Type >
bool LibCommon::CArray< Type >::Insert ( int  nIndex,
CArray< Type > const &  rcInstance 
)
virtualnoexcept

挿入関数

挿入関数です。

引数
[in]nIndexインデックス
[in]rcInstanceインスタンス参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp425 行目に定義があります。

参照元 LibWindow::CWndDockingPartition::ExecMenuCommand(), LibCommon::CArray< CJson * >::operator()().

425  {
426  // 挿入する
427  return Insert( nIndex, rcInstance.m_pBuffer, rcInstance.m_nCount );
428  }
virtual bool Insert(int nIndex, CArray const &rcInstance) noexcept
挿入関数
Definition: CArray.hpp:425

被呼び出し関係図:

template<typename Type>
bool LibCommon::CArray< Type >::Insert ( int  nIndex,
Type const &  rElement 
)
virtualnoexcept

挿入関数

挿入関数です。

引数
[in]nIndexインデックス
[in]rElement配列要素参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp433 行目に定義があります。

433  {
434  // 挿入する
435  return Insert( nIndex, &rElement, 1 );
436  }
virtual bool Insert(int nIndex, CArray const &rcInstance) noexcept
挿入関数
Definition: CArray.hpp:425
template<typename Type>
bool LibCommon::CArray< Type >::Insert ( int  nIndex,
Type const *  pBuffer,
int  nCount 
)
virtualnoexcept

挿入関数

挿入関数です。

引数
[in]nIndexインデックス
[in]pBufferバッファポインタ
[in]nCount配列要素数
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp441 行目に定義があります。

441  {
442  // 処理ブロック
443  bool result = false;
444  do {
445  // バッファポインタを調べる
446  if ( nullptr == pBuffer ) {
447  // 失敗!
448  break;
449  }
450  // インデックスを調べる
451  else if ( ( 0 > nIndex ) || ( m_nCount < nIndex ) ) {
452  // 失敗!
453  break;
454  }
455  // 配列要素数を調べる
456  else if ( 0 > nCount ) {
457  // 失敗!
458  break;
459  }
460  // バッファサイズを更新する
461  else if ( !UpdateBuffer( m_nCount + nCount ) ) {
462  // 失敗!
463  break;
464  }
465 
466  // 移動配列要素数を取得する
467  int nMove = ( m_nCount - nIndex );
468  if ( 0 < nMove ) {
469  // 巡回する
470  Type* pDst = &m_pBuffer[ m_nCount + nCount - 1 ];
471  Type const* pSrc = &m_pBuffer[ m_nCount - 1 ];
472  for ( ; 0 < nMove; --nMove ) {
473  // 配列要素をコピーする
474  *pDst-- = *pSrc--;
475  }
476  }
477 
478  // 配列要素数を更新する
479  m_nCount += nCount;
480 
481  // 巡回する
482  Type const* pSrc = pBuffer;
483  Type* pDst = &m_pBuffer[ nIndex ];
484  for ( ; 0 < nCount; --nCount ) {
485  // 配列要素をコピーする
486  *pDst++ = *pSrc++;
487  }
488 
489  // 成功!
490  result = true;
491  } while ( false );
492 
493  // 実行結果を返す
494  return result;
495  }
int m_nCount
要素数
Definition: CArray.h:669
Type * m_pBuffer
バッファポインタ
Definition: CArray.h:667
virtual bool UpdateBuffer(int nCount) noexcept
バッファサイズ更新関数
Definition: CArray.hpp:270
template<typename Type>
bool LibCommon::CArray< Type >::Insert ( int  nIndex,
std::initializer_list< Type const > const &  rcInitializer 
)
virtualnoexcept

挿入関数

挿入関数です。

引数
[in]nIndexインデックス
[in]rcInitializer配列要素初期化子リスト参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp500 行目に定義があります。

500  {
501  // 処理ブロック
502  bool result = false;
503  do {
504  // 巡回する
505  for ( auto pcIter = rcInitializer.begin();; ++pcIter ) {
506  // イテレータを調べる
507  if ( rcInitializer.end() == pcIter ) {
508  // 成功!
509  result = true;
510  break;
511  }
512 
513  // 挿入する
514  if ( !Insert( nIndex++, *pcIter ) ) {
515  // 失敗!
516  break;
517  }
518  }
519  } while ( false );
520 
521  // 実行結果を返す
522  return result;
523  }
virtual bool Insert(int nIndex, CArray const &rcInstance) noexcept
挿入関数
Definition: CArray.hpp:425
template<typename Type >
bool LibCommon::CArray< Type >::Remove ( )
virtualnoexcept

削除関数

削除関数です。

引数
なし
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp528 行目に定義があります。

参照元 LibJson::CJsonDocument::DeleteJson(), LibCommon::CArray< CJson * >::operator()().

528  {
529  // 削除する
530  return Remove( m_nCount - 1 );
531  }
virtual bool Remove() noexcept
削除関数
Definition: CArray.hpp:528
int m_nCount
要素数
Definition: CArray.h:669

被呼び出し関係図:

template<typename Type >
bool LibCommon::CArray< Type >::Remove ( int  nIndex)
virtualnoexcept

削除関数

削除関数です。

引数
[in]nIndexインデックス
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp536 行目に定義があります。

536  {
537  // 削除する
538  return Remove( nIndex, 1 );
539  }
virtual bool Remove() noexcept
削除関数
Definition: CArray.hpp:528
template<typename Type >
bool LibCommon::CArray< Type >::Remove ( int  nIndex,
int  nCount 
)
virtualnoexcept

削除関数

削除関数です。

引数
[in]nIndexインデックス
[in]nCount配列要素数
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp544 行目に定義があります。

544  {
545  // 処理ブロック
546  bool result = false;
547  do {
548  // インデックスを調べる
549  if ( ( 0 > nIndex ) || ( m_nCount <= nIndex ) ) {
550  // 失敗!
551  break;
552  }
553  // 配列要素数を調べる
554  else if ( ( m_nCount - nIndex ) < nCount ) {
555  // 失敗!
556  break;
557  }
558 
559  // 移動配列要素数を取得する
560  int nMove = ( m_nCount - nIndex - nCount );
561  if ( 0 < nMove ) {
562  // 巡回する
563  for ( ; 0 < nMove; --nMove, ++nIndex ) {
564  // 配列要素をコピーする
565  m_pBuffer[ nIndex ] = m_pBuffer[ nIndex + nCount ];
566  }
567  }
568 
569  // 巡回する
570  for ( ; m_nCount > nIndex; ++nIndex ) {
571  // 配列要素をクリアする
572  ::memset( &m_pBuffer[ nIndex ], 0, sizeof( Type ) );
573  }
574 
575  // 配列要素数を更新する
576  m_nCount -= nCount;
577 
578  // 成功!
579  result = true;
580  } while ( false );
581 
582  // 実行結果を返す
583  return result;
584  }
int m_nCount
要素数
Definition: CArray.h:669
Type * m_pBuffer
バッファポインタ
Definition: CArray.h:667
template<typename Type>
bool LibCommon::CArray< Type >::Get ( int  nIndex,
Type &  rElement 
) const
virtualnoexcept

取得関数

取得関数です。

引数
[in]nIndexインデックス
[in]rElement配列要素参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp589 行目に定義があります。

参照元 LibCommon::CArray< CJson * >::operator()().

589  {
590  // 処理ブロック
591  bool result = false;
592  do {
593  // インデックスを調べる
594  if ( ( 0 > nIndex ) || ( m_nCount <= nIndex ) ) {
595  // 失敗!
596  break;
597  }
598 
599  // 配列要素を取得する
600  rElement = m_pBuffer[ nIndex ];
601 
602  // 成功!
603  result = true;
604  } while ( false );
605 
606  // 実行結果を返す
607  return result;
608  }
int m_nCount
要素数
Definition: CArray.h:669
Type * m_pBuffer
バッファポインタ
Definition: CArray.h:667

被呼び出し関係図:

template<typename Type>
bool LibCommon::CArray< Type >::Set ( int  nIndex,
Type const &  rElement 
)
virtualnoexcept

設定関数

設定関数です。

引数
[in]nIndexインデックス
[in]rElement配列要素参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp613 行目に定義があります。

参照元 LibCommon::CArray< CJson * >::operator()().

613  {
614  // 処理ブロック
615  bool result = false;
616  do {
617  // インデックスを調べる
618  if ( ( 0 > nIndex ) || ( m_nCount <= nIndex ) ) {
619  // 失敗!
620  break;
621  }
622 
623  // 配列要素を設定する
624  m_pBuffer[ nIndex ] = rElement;
625 
626  // 成功!
627  result = true;
628  } while ( false );
629 
630  // 実行結果を返す
631  return result;
632  }
int m_nCount
要素数
Definition: CArray.h:669
Type * m_pBuffer
バッファポインタ
Definition: CArray.h:667

被呼び出し関係図:

template<typename Type>
int LibCommon::CArray< Type >::Find ( Type const &  rElement) const
virtualnoexcept

検索関数

検索関数です。

引数
[in]rElement配列要素参照
戻り値
インデックス
  • 0 以上 成功
  • 0 未満 失敗
注意
なし

CArray.hpp637 行目に定義があります。

参照元 LibWindow::CWndPartition::BeginMoveSizeBar(), LibJson::CJsonDocument::CreateJsonPath(), LibJson::CJsonDocument::DeleteJson(), LibCommon::CArray< CJson * >::operator()(), LibJson::CJsonDocument::SetJsonSetValueByStream().

637  {
638  // 処理ブロック
639  int result = -1;
640  do {
641  // 巡回する
642  for ( int nIndex = 0; m_nCount > nIndex; ++nIndex ) {
643  // 配列要素を調べる
644  if ( Compare( rElement, m_pBuffer[ nIndex ] ) ) {
645  // 成功!
646  result = nIndex;
647  break;
648  }
649  }
650  } while ( false );
651 
652  // 実行結果を返す
653  return result;
654  }
int m_nCount
要素数
Definition: CArray.h:669
virtual bool Compare(Type const &rElement1, Type const &rElement2) const noexcept
比較関数
Definition: CArray.hpp:659
Type * m_pBuffer
バッファポインタ
Definition: CArray.h:667

被呼び出し関係図:

template<typename Type>
bool LibCommon::CArray< Type >::Compare ( Type const &  rElement1,
Type const &  rElement2 
) const
virtualnoexcept

比較関数

比較関数です。

引数
[in]rElement1第1配列要素参照
[in]rElement2第2配列要素参照
戻り値
実行結果
  • true 一致
  • false 不一致
注意
なし

CArray.hpp659 行目に定義があります。

参照元 LibCommon::CArray< CJson * >::operator()().

659  {
660  // 処理ブロック
661  bool result = false;
662  do {
663  // 巡回する
664  for ( int nIndex = 0;; ++nIndex ) {
665  // インデックスを調べる
666  if ( sizeof( Type ) <= nIndex ) {
667  // 成功!
668  result = true;
669  break;
670  }
671  // バイトデータを調べる
672  else if ( reinterpret_cast< char const* >( &rElement1 )[ nIndex ] != reinterpret_cast< char const* >( &rElement2 )[ nIndex ] ) {
673  // 失敗!
674  break;
675  }
676  }
677  } while ( false );
678 
679  // 実行結果を返す
680  return result;
681  }

被呼び出し関係図:

template<typename Type>
bool LibCommon::CArray< Type >::Push ( Type const &  rElement)
virtualnoexcept

プッシュ関数

プッシュ関数です。

引数
[in]rElement配列要素参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp686 行目に定義があります。

参照元 LibJson::CJsonDocument::CreateJsonPath(), LibCommon::CArray< CJson * >::operator()().

686  {
687  // 追加する
688  return Append( rElement );
689  }
virtual bool Append(CArray const &rcInstance) noexcept
追加関数
Definition: CArray.hpp:393

被呼び出し関係図:

template<typename Type>
bool LibCommon::CArray< Type >::Push ( Type const *  pBuffer,
int  nCount 
)
virtualnoexcept

プッシュ関数

プッシュ関数です。

引数
[in]pBuffer配列要素ポインタ
[in]nCount配列要素数
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp694 行目に定義があります。

694  {
695  // 追加する
696  return Append( pBuffer, nCount );
697  }
virtual bool Append(CArray const &rcInstance) noexcept
追加関数
Definition: CArray.hpp:393
template<typename Type>
bool LibCommon::CArray< Type >::Push ( std::initializer_list< Type const > const &  rcInitializer)
virtualnoexcept

プッシュ関数

プッシュ関数です。

引数
[in]rcInitializer配列要素初期化子リスト参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp702 行目に定義があります。

702  {
703  // 追加する
704  return Append( rcInitializer );
705  }
virtual bool Append(CArray const &rcInstance) noexcept
追加関数
Definition: CArray.hpp:393
template<typename Type>
bool LibCommon::CArray< Type >::Pop ( Type &  rElement)
virtualnoexcept

ポップ関数

ポップ関数です。

引数
[in]rElement配列要素参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp710 行目に定義があります。

参照元 LibCommon::CArray< CJson * >::operator()().

710  {
711  // 処理ブロック
712  bool result = false;
713  do {
714  // 配列要素数を取得する
715  if ( !Get( ( m_nCount - 1 ), rElement ) ) {
716  // 失敗!
717  break;
718  }
719  // 削除する
720  else if ( !Remove() ) {
721  // 失敗!
722  break;
723  }
724 
725  // 成功!
726  result = true;
727  } while ( false );
728 
729  // 実行結果を返す
730  return result;
731  }
virtual bool Remove() noexcept
削除関数
Definition: CArray.hpp:528
int m_nCount
要素数
Definition: CArray.h:669
virtual bool Get(int nIndex, Type &rElement) const noexcept
取得関数
Definition: CArray.hpp:589

被呼び出し関係図:

template<typename Type>
bool LibCommon::CArray< Type >::PopFront ( Type &  rElement)
virtualnoexcept

ポップフロント関数

ポップフロント関数です。

引数
[in]rElement配列要素参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CArray.hpp736 行目に定義があります。

参照元 LibCommon::CArray< CJson * >::operator()().

736  {
737  // 処理ブロック
738  bool result = false;
739  do {
740  // 配列要素数を取得する
741  if ( !Get( 0, rElement ) ) {
742  // 失敗!
743  break;
744  }
745  // 削除する
746  else if ( !Remove( 0 ) ) {
747  // 失敗!
748  break;
749  }
750 
751  // 成功!
752  result = true;
753  } while ( false );
754 
755  // 実行結果を返す
756  return result;
757  }
virtual bool Remove() noexcept
削除関数
Definition: CArray.hpp:528
virtual bool Get(int nIndex, Type &rElement) const noexcept
取得関数
Definition: CArray.hpp:589

被呼び出し関係図:

メンバ詳解

template<typename Type>
int LibCommon::CArray< Type >::m_nSize
protected

バッファサイズ

CArray.h668 行目に定義があります。

参照元 LibCommon::CArray< CJson * >::GetSize().

template<typename Type>
int const LibCommon::CArray< Type >::SEGMENT_SIZE = 256
static

セグメントサイズ初期値

CArray.h674 行目に定義があります。

参照元 LibCommon::CArray< CJson * >::GetSegmentSize().


このクラス詳解は次のファイルから抽出されました: