TNB Library
クラス | 公開型 | 公開メンバ関数 | 静的公開メンバ関数 | 全メンバ一覧
CValueUnitT< U > クラステンプレート

単位付値管理テンプレートクラス [詳解]

#include <TnbValueUnit.h>

+ CValueUnitT< U > の継承関係図

クラス

class  CCode
 単位コード管理クラス [詳解]
 

公開型

enum  EPfUnitCode {
  DEF = _BIT(30) , YOTTA , ZETTA , EXA ,
  PETA , TERA , GIGA , MEGA ,
  KILO , DECI , CENTI , MILLI ,
  MICRO , NANO , PICO , FEMTO ,
  ATTO , ZEPTO , YOCTO , YOBI ,
  ZEBI , EXBI , PEBI , TEBI ,
  GIBI , MEBI , KIBI , KIRO = KILO
}
 接頭単位コード. [詳解]
 

公開メンバ関数

 CValueUnitT (const CRealNumber &v)
 コンストラクタ. [詳解]
 
 CValueUnitT (const CRealNumber &v, CCode code)
 コンストラクタ. [詳解]
 
 CValueUnitT (void)
 コンストラクタ. [詳解]
 
CCode GetUnitCode (void) const
 [取得] 単位コード取得. [詳解]
 
CStr GetUnitJapanString (void) const
 [取得] 単位意味文字列取得. [詳解]
 
CStr GetUnitMarkString (void) const
 [取得] 単位マーク文字列取得. [詳解]
 
CRealNumber GetValue (CCode code) const
 [取得] 値取得(単位指定). [詳解]
 
CRealNumber GetValue (void) const
 [取得] 値取得. [詳解]
 
 operator CRealNumber (void) const
 [取得] 値取得. [詳解]
 
bool operator!= (const CValueUnitT &t) const
 [確認] 比較 [詳解]
 
CValueUnitT operator* (const CRealNumber &v) const
 [計算] 掛算. [詳解]
 
CValueUnitToperator*= (const CRealNumber &v)
 [計算] 掛算代入. [詳解]
 
CValueUnitT operator+ (const CRealNumber &v) const
 [計算] 加算. [詳解]
 
CValueUnitT operator+ (const CValueUnitT &u) const
 [計算] 単位付値加算. [詳解]
 
CValueUnitToperator+= (const CRealNumber &v)
 [計算] 加算代入. [詳解]
 
CValueUnitToperator+= (const CValueUnitT &u)
 [計算] 単位付値加算代入. [詳解]
 
CValueUnitT operator- (const CRealNumber &v) const
 [計算] 減算. [詳解]
 
CValueUnitT operator- (const CValueUnitT &u) const
 [計算] 単位付値減算. [詳解]
 
CValueUnitToperator-= (const CRealNumber &v)
 [計算] 減算代入. [詳解]
 
CValueUnitToperator-= (const CValueUnitT &u)
 [計算] 単位付値減算代入. [詳解]
 
CValueUnitT operator/ (const CRealNumber &v) const
 [計算] 割算. [詳解]
 
CRealNumber operator/ (const CValueUnitT &u) const
 [計算] 単位付値割算. [詳解]
 
CValueUnitToperator/= (const CRealNumber &v)
 [計算] 割算代入. [詳解]
 
bool operator< (const CValueUnitT &t) const
 [確認] 比較 [詳解]
 
bool operator<= (const CValueUnitT &t) const
 [確認] 比較 [詳解]
 
bool operator== (const CValueUnitT &t) const
 [確認] 比較 [詳解]
 
bool operator> (const CValueUnitT &t) const
 [確認] 比較 [詳解]
 
bool operator>= (const CValueUnitT &t) const
 [確認] 比較 [詳解]
 
void Set (const CRealNumber &v)
 [代入] 値設定 指定の値を設定します。単位は変化しません。 [詳解]
 
void Set (const CRealNumber &v, CCode code)
 [代入] 値、単位設定 指定の値、単位を設定します。 [詳解]
 
CStr ToString (CCode code, LPCTSTR lpszFormat=NULL) const
 [取得] 文字列で取得(単位指定あり) [詳解]
 
CStr ToString (LPCTSTR lpszFormat=NULL) const
 [取得] 文字列で取得 [詳解]
 
CValueUnitTToUnit (CCode code)
 [変換] 単位変更. [詳解]
 

静的公開メンバ関数

static const TUnitParamGetPfParam (EPfUnitCode code)
 [取得] 接頭単位コードパラメータ取得 [詳解]
 
static CStr GetUnitJapanString (CCode code)
 [取得] 単位意味文字列取得. [詳解]
 
static DWORD GetUnitKindCode (void)
 [取得] 単位種コード取得 [詳解]
 
static CStr GetUnitKindString (void)
 [取得] 単位種文字列取得 [詳解]
 
static CStr GetUnitMarkString (CCode code)
 [取得] 単位マーク文字列取得. [詳解]
 

詳解

template<typename U>
class TNB::CValueUnitT< U >

単位付値管理テンプレートクラス

型に単位管理クラスを指定することで、その単位と値を扱うクラスになります。
覚え書き
継承を使わず、テンプレートによる多体化を行なっています。
引数
U単位管理クラス。これにより単位種が決まります。
必要ファイル
TnbValueUnit.h
日付
06/12/26 新規作成

TnbValueUnit.h214 行目に定義があります。

列挙型メンバ詳解

◆ EPfUnitCode

enum EPfUnitCode
inherited

接頭単位コード.

列挙値
DEF 
YOTTA 

ヨタ (1.0E+24)

ZETTA 

ゼタ (1.0E+21)

EXA 

エクサ (1.0E+18)

PETA 

ぺタ (1.0E+15)

TERA 

テラ (1.0E+12)

GIGA 

ギガ (1.0E+9)

MEGA 

メガ (1.0E+6)

KILO 

キロ (1.0E+3)

DECI 

デシ (1.0E-1)

CENTI 

センチ (1.0E-2)

MILLI 

ミリ (1.0E-3)

MICRO 

マイクロ (1.0E-6)

NANO 

ナノ (1.0E-9)

PICO 

ピコ (1.0E-12)

FEMTO 

フェムト (1.0E-15)

ATTO 

アト (1.0E-18)

ZEPTO 

ゼプト (1.0E-21)

YOCTO 

ヨクト (1.0E-24)

YOBI 

ヨビ (2^80)

ZEBI 

ゼビ (2^70)

EXBI 

エクスビ (2^60)

PEBI 

ぺビ (2^50)

TEBI 

テビ (2^40)

GIBI 

ギビ (2^30)

MEBI 

メビ (2^20)

KIBI 

キビ (2^10)

KIRO 

キロ (1.0E+3)

TnbValueUnit.h114 行目に定義があります。

構築子と解体子

◆ CValueUnitT() [1/3]

CValueUnitT ( void  )

コンストラクタ.

単位は単位種の基準単位に。値は empty になります。

TnbValueUnit.h326 行目に定義があります。

◆ CValueUnitT() [2/3]

CValueUnitT ( const CRealNumber v)
explicit

コンストラクタ.

指定の値のインスタンスを作成します。単位は単位種の基準単位になります。

引数
v値。

TnbValueUnit.h336 行目に定義があります。

◆ CValueUnitT() [3/3]

CValueUnitT ( const CRealNumber v,
CCode  code 
)

コンストラクタ.

指定の値、単位のインスタンスを作成します。

引数
v値。
code単位コード。

TnbValueUnit.h347 行目に定義があります。

関数詳解

◆ GetPfParam()

static const TUnitParam * GetPfParam ( EPfUnitCode  code)
staticinherited

[取得] 接頭単位コードパラメータ取得

引数
code接頭単位コード
戻り値
パラメータ
例外
CNoSuchTypeExceptionコード値異常の時、スローされます。

TnbValueUnit.h154 行目に定義があります。

◆ GetUnitCode()

CCode GetUnitCode ( void  ) const

[取得] 単位コード取得.

現在保持している単位コード取得。

戻り値
単位コード。

TnbValueUnit.h406 行目に定義があります。

◆ GetUnitJapanString() [1/2]

static CStr GetUnitJapanString ( CCode  code)
static

[取得] 単位意味文字列取得.

引数
code単位コード。
戻り値
単位意味文字列。

TnbValueUnit.h765 行目に定義があります。

◆ GetUnitJapanString() [2/2]

CStr GetUnitJapanString ( void  ) const

[取得] 単位意味文字列取得.

現在保持している単位の文字列を返します。

戻り値
単位意味文字列。

TnbValueUnit.h426 行目に定義があります。

◆ GetUnitKindCode()

static DWORD GetUnitKindCode ( void  )
static

[取得] 単位種コード取得

戻り値
単位種コード

TnbValueUnit.h735 行目に定義があります。

◆ GetUnitKindString()

static CStr GetUnitKindString ( void  )
static

[取得] 単位種文字列取得

戻り値
単位種文字列

TnbValueUnit.h726 行目に定義があります。

◆ GetUnitMarkString() [1/2]

static CStr GetUnitMarkString ( CCode  code)
static

[取得] 単位マーク文字列取得.

引数
code単位コード。
戻り値
単位マーク文字列。

TnbValueUnit.h745 行目に定義があります。

◆ GetUnitMarkString() [2/2]

CStr GetUnitMarkString ( void  ) const

[取得] 単位マーク文字列取得.

現在保持している単位の文字列を返します。

戻り値
単位マーク文字列。

TnbValueUnit.h416 行目に定義があります。

◆ GetValue() [1/2]

CRealNumber GetValue ( CCode  code) const

[取得] 値取得(単位指定).

保持している値を、指定単位に計算して返します。

引数
code単位コード。
戻り値
値。

TnbValueUnit.h475 行目に定義があります。

◆ GetValue() [2/2]

CRealNumber GetValue ( void  ) const

[取得] 値取得.

現在の単位コードのまま、値を返します。

戻り値
値。

TnbValueUnit.h454 行目に定義があります。

◆ operator CRealNumber()

operator CRealNumber ( void  ) const

[取得] 値取得.

現在の単位コードのまま、値を返します。

戻り値
値。

TnbValueUnit.h464 行目に定義があります。

◆ operator!=()

bool operator!= ( const CValueUnitT< U > &  t) const

[確認] 比較

覚え書き
単位をそろえて比較します。
引数
t比較対象
戻り値
true自分は t と異なる
false自分は t と同じ

TnbValueUnit.h680 行目に定義があります。

◆ operator*()

CValueUnitT operator* ( const CRealNumber v) const

[計算] 掛算.

引数
v値。
戻り値
単位付値。

TnbValueUnit.h614 行目に定義があります。

◆ operator*=()

CValueUnitT & operator*= ( const CRealNumber v)

[計算] 掛算代入.

引数
v値。
戻り値
自分の参照。

TnbValueUnit.h603 行目に定義があります。

◆ operator+() [1/2]

CValueUnitT operator+ ( const CRealNumber v) const

[計算] 加算.

引数
v値。
戻り値
単位付値。

TnbValueUnit.h522 行目に定義があります。

◆ operator+() [2/2]

CValueUnitT operator+ ( const CValueUnitT< U > &  u) const

[計算] 単位付値加算.

単位を考慮し値を加算します。

引数
u単位付値。
戻り値
加算した結果。

TnbValueUnit.h500 行目に定義があります。

◆ operator+=() [1/2]

CValueUnitT & operator+= ( const CRealNumber v)

[計算] 加算代入.

引数
v値。
戻り値
自分の参照。

TnbValueUnit.h511 行目に定義があります。

◆ operator+=() [2/2]

CValueUnitT & operator+= ( const CValueUnitT< U > &  u)

[計算] 単位付値加算代入.

単位を考慮し値を加算代入します。

引数
u単位付値。
戻り値
自分の参照。

TnbValueUnit.h488 行目に定義があります。

◆ operator-() [1/2]

CValueUnitT operator- ( const CRealNumber v) const

[計算] 減算.

引数
v値。
戻り値
単位付値。

TnbValueUnit.h579 行目に定義があります。

◆ operator-() [2/2]

CValueUnitT operator- ( const CValueUnitT< U > &  u) const

[計算] 単位付値減算.

単位を考慮し値を減算します。

引数
u単位付値。
戻り値
加算した結果

TnbValueUnit.h557 行目に定義があります。

◆ operator-=() [1/2]

CValueUnitT & operator-= ( const CRealNumber v)

[計算] 減算代入.

引数
v値。
戻り値
自分の参照。

TnbValueUnit.h568 行目に定義があります。

◆ operator-=() [2/2]

CValueUnitT & operator-= ( const CValueUnitT< U > &  u)

[計算] 単位付値減算代入.

単位を考慮し値を減算します。

引数
u単位付値。
戻り値
自分の参照。

TnbValueUnit.h545 行目に定義があります。

◆ operator/() [1/2]

CValueUnitT operator/ ( const CRealNumber v) const

[計算] 割算.

引数
v値。
戻り値
単位付値。

TnbValueUnit.h658 行目に定義があります。

◆ operator/() [2/2]

CRealNumber operator/ ( const CValueUnitT< U > &  u) const

[計算] 単位付値割算.

覚え書き
同単位系同士の割り算は、単位がなくなります。
引数
u単位付値。
戻り値
値(単位なし)。

TnbValueUnit.h637 行目に定義があります。

◆ operator/=()

CValueUnitT & operator/= ( const CRealNumber v)

[計算] 割算代入.

引数
v値。
戻り値
自分の参照。

TnbValueUnit.h647 行目に定義があります。

◆ operator<()

bool operator< ( const CValueUnitT< U > &  t) const

[確認] 比較

覚え書き
単位をそろえて比較します。
引数
t比較対象
戻り値
true自分は t より小さい
false自分は t と同じか大きい

TnbValueUnit.h689 行目に定義があります。

◆ operator<=()

bool operator<= ( const CValueUnitT< U > &  t) const

[確認] 比較

覚え書き
単位をそろえて比較します。
引数
t比較対象
戻り値
true自分は t と同じか小さい
false自分は t より大きい

TnbValueUnit.h698 行目に定義があります。

◆ operator==()

bool operator== ( const CValueUnitT< U > &  t) const

[確認] 比較

覚え書き
単位をそろえて比較します。
引数
t比較対象
戻り値
true自分は t と同じ
false自分は t と異なる

TnbValueUnit.h671 行目に定義があります。

◆ operator>()

bool operator> ( const CValueUnitT< U > &  t) const

[確認] 比較

覚え書き
単位をそろえて比較します。
引数
t比較対象
戻り値
true自分は t より大きい
false自分は t と同じか小さい

TnbValueUnit.h707 行目に定義があります。

◆ operator>=()

bool operator>= ( const CValueUnitT< U > &  t) const

[確認] 比較

覚え書き
単位をそろえて比較します。
引数
t比較対象
戻り値
true自分は t と同じか大きい
false自分は t より小さい

TnbValueUnit.h716 行目に定義があります。

◆ Set() [1/2]

void Set ( const CRealNumber v)

[代入] 値設定 指定の値を設定します。単位は変化しません。

引数
v値。

TnbValueUnit.h357 行目に定義があります。

◆ Set() [2/2]

void Set ( const CRealNumber v,
CCode  code 
)

[代入] 値、単位設定 指定の値、単位を設定します。

引数
v値。
code単位コード。

TnbValueUnit.h368 行目に定義があります。

◆ ToString() [1/2]

CStr ToString ( CCode  code,
LPCTSTR  lpszFormat = NULL 
) const

[取得] 文字列で取得(単位指定あり)

覚え書き
指定のフォーマットで、指定の単位に変換して文字列に変換します。
ex) "5cm"
引数
code単位コード。
lpszFormatprintf()で double 一つを表示する場合のフォーマットを指定。省略すると "%f" になります。
戻り値
文字列

TnbValueUnit.h394 行目に定義があります。

◆ ToString() [2/2]

CStr ToString ( LPCTSTR  lpszFormat = NULL) const

[取得] 文字列で取得

覚え書き
指定のフォーマットで、現在の単位文字列付きで文字列に変換します。
ex) "5cm"
引数
lpszFormatprintf()で double 一つを表示する場合のフォーマットを指定。省略すると "%f" になります。
戻り値
文字列

TnbValueUnit.h381 行目に定義があります。

◆ ToUnit()

CValueUnitT & ToUnit ( CCode  code)

[変換] 単位変更.

覚え書き
保持している単位を変更します。値も計算されます。
引数
code単位コード。
戻り値
自分の参照。

TnbValueUnit.h437 行目に定義があります。