52 class CUnionVu :
public CUnion
59 virtual void Destractor(LPVOID V)
61 delete static_cast<T*
>(V);
65 return static_cast<T*
>(V)->
GetValue();
74 CUnionVu(
void) : _super() {}
85 CUnionVu(
const CUnionVu& other) : _super(other) {}
88 void Set(
const T& t, DWORD dwParam = 0)
91 m_hpHead->Set(t, dwParam,
new CFuncT<T>);
150 void Set(
const T& t, LPCTSTR lpszFormat = NULL, LPCTSTR lpszInvalid = NULL)
152 ASSERT( T::TNBLIB_VALUEUNIT == -1 );
153 m_uni.Set(t, T::KINDCODE);
154 m_strFormat = lpszFormat;
155 m_strInvalid = (lpszInvalid == NULL ) ? _T(
"?") : lpszInvalid;
164 return m_uni.GetParam();
178 if ( T::KINDCODE != m_uni.GetParam() )
182 return m_uni.Get(_t);
196 if ( T::KINDCODE != m_uni.GetParam() )
214 strRet =
CStr::Fmt(_T(
"%s %s"), s, m_uni.GetUnitMarkString());
225 return m_uni.GetValue();
234 return m_uni.GetUnitMarkString();
bool IsEmpty(void) const
[確認] EMPTY確認
bool IsValid(void) const
[確認] 有効確認
CStr ToString(LPCTSTR lpszFormat=NULL) const
[取得] 文字列作成
static CStrT Fmt(const TCHAR *lpszFormat,...)
[作成] 書式付き文字列作成
~CUnionValueUnit(void)
デストラクタ
CUnionValueUnit(void)
コンストラクタ
bool Get(T &_t) const
[取得] 取得.
DWORD GetUnitKindCode(void) const
[取得] 単位種コード取得.
CRealNumber GetValue(void) const
[取得] 値取得
const T & Ref(T *P) const
[取得] 参照取得.
CStr GetUnitMarkString(void) const
[取得] 単位記号取得
void Set(const T &t, LPCTSTR lpszFormat=NULL, LPCTSTR lpszInvalid=NULL)
[設定] 代入.
CStr ToString(void) const
[取得] 文字列取得
CPointerHandleT< THead > m_hpHead
実体参照ハンドル
virtual CRealNumber GetValue(LPVOID V) const =0
数値取得
virtual CStr GetUnitMarkString(LPVOID V) const =0
単位記号取得
UNION管理クラス用ファンクションインターフェース