TNB Library
公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
CConverterT< DST, SRC > クラステンプレートabstract

情報変換ベースクラス [詳解]

#include <TnbConverter.h>

公開メンバ関数

template<typename T , typename D , typename S >
void Convert (CPairT< T, D > &_dst, const CPairT< T, S > &src)
 [変換] ペア型変換. [詳解]
 
void Convert (DST &_dst, const SRC &src)
 [変換] 単要素変換 [詳解]
 
template<typename D , typename S >
void Convert (ICollectionT< D > &_dst, const IConstCollectionT< S > &src)
 [変換] コレクション変換 [詳解]
 

限定公開メンバ関数

virtual void Converter (DST &_dst, const SRC &src)=0
 [変換] 変換器 [詳解]
 

詳解

template<typename DST, typename SRC>
class TNB::CConverterT< DST, SRC >

情報変換ベースクラス

指定の SRC型 を 指定の DST型に変換するクラスのベースです。
Converter() を オーバーライドして、期待する変換クラスを宣言し使用します。
使用例
class CMyConv : public CConverterT<int, CStr>
{
//CStr→intのコンバータ
virtual void Converter(int& r, const CStr& src)
{
r = src.ToInt();
}
};
virtual void Converter(DST &_dst, const SRC &src)=0
[変換] 変換器
TNB::CStrT< TCHAR > CStr
文字列クラス
Definition: TnbStr.h:1785

SRC 型を持つ IConstCollectionT や、DST型を持つ、 ICollectionT を指定することで、 コレクション内の情報を全て変換することも出来ます(これが本クラスの目的)。

また、コレクションのネストも変換可能です。

なお、 CMapT の場合、キーは型は同じ、値の型を SRC と DST のものを指定します。

使用例
CVectorT<CMapT<char, int> > vmapi;
CVectorT<CMapT<char, CStr> > vmaps;
;
CMyConv().Convert(vmapi, vmaps);
覚え書き
SRC,DST に、 コレクション型 や ペア型 を指定できません。
引数
DST変換後の型
SRC変換前の型
必要ファイル
TnbConverter.h
日付
06/09/12 新規作成。
16/06/16 バグ修正。

TnbConverter.h69 行目に定義があります。

関数詳解

◆ Convert() [1/3]

void Convert ( CPairT< T, D > &  _dst,
const CPairT< T, S > &  src 
)

[変換] ペア型変換.

覚え書き
値の型のみ変換します。キーは同じ内容になります。
引数
[out]_dst変換後
[in]src変換元
例外
CTnbException変換が不可能を示すために、スローされることがあります。

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

◆ Convert() [2/3]

void Convert ( DST &  _dst,
const SRC &  src 
)

[変換] 単要素変換

引数
[out]_dst変換後
[in]src変換元
例外
CTnbException変換が不可能を示すために、スローされることがあります。

TnbConverter.h90 行目に定義があります。

◆ Convert() [3/3]

void Convert ( ICollectionT< D > &  _dst,
const IConstCollectionT< S > &  src 
)

[変換] コレクション変換

引数
[out]_dst変換後
[in]src変換元
例外
CEmptyExceptionコレクションに追加不可能であることを示すために、スローされることがあります。
CTnbException変換が不可能を示すために、スローされることがあります。

TnbConverter.h103 行目に定義があります。

◆ Converter()

virtual void Converter ( DST &  _dst,
const SRC &  src 
)
protectedpure virtual

[変換] 変換器

覚え書き
ここにSRC型からDST型を作成するメソッドを実装する
引数
[out]_dst変換後
[in]src変換元
例外
CTnbException変換が不可能の場合、スローすることが出来ます。