TNB Library
公開型 | 公開メンバ関数 | 静的公開メンバ関数 | 全メンバ一覧
CValueParUnitT< U1, U2, EX > クラステンプレート

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

#include <TnbValueParUnit.h>

+ CValueParUnitT< U1, U2, EX > の継承関係図

公開型

enum  { KINDCODE = EX::KINDCODE }
 単位種コード [詳解]
 
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
}
 接頭単位コード. [詳解]
 

公開メンバ関数

 CValueParUnitT (const CRealNumber &v)
 コンストラクタ. [詳解]
 
 CValueParUnitT (const CRealNumber &v, CExCode code)
 コンストラクタ. [詳解]
 
 CValueParUnitT (const CRealNumber &v, CNumeCode c1, CDenoCode c2)
 コンストラクタ. [詳解]
 
 CValueParUnitT (void)
 コンストラクタ. [詳解]
 
CDenoCode GetDenoUnitCode (void) const
 [取得] 分母単位コード取得. [詳解]
 
CNumeCode GetUnitCode (void) const
 [取得] 単位コード取得. [詳解]
 
CStr GetUnitJapanString (void) const
 [取得] 単位マーク文字列取得. [詳解]
 
CStr GetUnitMarkString (void) const
 [取得] 単位マーク文字列取得. [詳解]
 
CRealNumber GetValue (CExCode code) const
 [取得] 値取得 (単位指定). [詳解]
 
CRealNumber GetValue (CNumeCode c1, CDenoCode c2) const
 [取得] 値取得 (単位指定). [詳解]
 
CRealNumber GetValue (void) const
 [取得] 値取得. [詳解]
 
bool HasExCode (void) const
 [確認] 単位コード確認. [詳解]
 
bool operator!= (const CValueParUnitT &t) const
 [確認] 比較 [詳解]
 
CValueParUnitT operator* (const CRealNumber &v) const
 [計算] 掛算. [詳解]
 
CValueUnitT< U1 > operator* (const CValueUnitT< U2 > &t) const
 [計算] 掛算 (分子単位 = 本クラス × 分母単位). [詳解]
 
CValueParUnitToperator*= (const CRealNumber &v)
 [計算] 掛算代入. [詳解]
 
CValueParUnitT operator+ (const CRealNumber &v) const
 [計算] 加算. [詳解]
 
CValueParUnitT operator+ (const CValueParUnitT &u) const
 [計算] 加算. [詳解]
 
CValueParUnitToperator+= (const CRealNumber &v)
 [計算] 加算代入. [詳解]
 
CValueParUnitToperator+= (const CValueParUnitT &u)
 [計算] 単位付値加算代入. [詳解]
 
CValueParUnitT operator- (const CRealNumber &v) const
 [計算] 減算. [詳解]
 
CValueParUnitT operator- (const CValueParUnitT &u) const
 [計算] 単位付値減算. [詳解]
 
CValueParUnitToperator-= (const CRealNumber &v)
 [計算] 減算代入. [詳解]
 
CValueParUnitToperator-= (const CValueParUnitT &u)
 [計算] 単位付値減算代入. [詳解]
 
CValueParUnitT operator/ (const CRealNumber &v) const
 [計算] 割算. [詳解]
 
CRealNumber operator/ (const CValueParUnitT &u) const
 [計算] 割算 (値 = 本クラス ÷ 本クラス). [詳解]
 
CValueParUnitToperator/= (const CRealNumber &v)
 [計算] 割算代入. [詳解]
 
bool operator< (const CValueParUnitT &t) const
 [確認] 比較 [詳解]
 
bool operator<= (const CValueParUnitT &t) const
 [確認] 比較 [詳解]
 
bool operator== (const CValueParUnitT &t) const
 [確認] 比較 [詳解]
 
bool operator> (const CValueParUnitT &t) const
 [確認] 比較 [詳解]
 
bool operator>= (const CValueParUnitT &t) const
 [確認] 比較 [詳解]
 
void Set (const CRealNumber &v)
 [代入] 値、単位設定 指定の値を記憶します。単位は変化しません。 [詳解]
 
void Set (const CRealNumber &v, CExCode code)
 [代入] 値、単位設定 指定の値、単位を記憶します。 [詳解]
 
void Set (const CRealNumber &v, CNumeCode c1, CDenoCode c2)
 [代入] 値、単位設定 指定の値、単位を記憶します。 [詳解]
 
CValueParUnitTToDenoUnit (CDenoCode code)
 [変換] 単位変更. [詳解]
 
void ToNormalUnit (void)
 [変換] 単位変更 (基本単位へ). [詳解]
 
CStr ToString (CExCode code, LPCTSTR lpszFormat=NULL) const
 [取得] 文字列で取得 (拡張単位指定あり) [詳解]
 
CStr ToString (CNumeCode c1, CDenoCode c2, LPCTSTR lpszFormat=NULL) const
 [取得] 文字列で取得 (拡張単位指定あり) [詳解]
 
CStr ToString (LPCTSTR lpszFormat=NULL) const
 [取得] 文字列で取得 [詳解]
 
CValueParUnitTToUnit (CExCode code)
 [変換] 単位変更. [詳解]
 
CValueParUnitTToUnit (CNumeCode c1, CDenoCode c2)
 [変換] 単位変更. [詳解]
 

静的公開メンバ関数

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

詳解

template<typename U1, typename U2, typename EX>
class TNB::CValueParUnitT< U1, U2, EX >

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

型に単位管理クラスを2つ指定することで、その単位と値を扱うクラスになります。
覚え書き
継承を使わず、テンプレートによる多体化を行なっています。
引数
U1分子になる単位管理クラス。これが分子単位コードになります。
U2分母になる単位管理クラス。これが分母単位コードになります。
EXベース専用の単位管理クラス。これが拡張単位コードになります。
覚え書き
分子単位コードは、U1 の単位コードか、接頭単位コードを指定できます。
分母単位コードは、U2 の単位コードか、接頭単位コードを指定できます。
必要ファイル
TnbValueParUnit.h
日付
06/12/26 新規作成

TnbValueParUnit.h55 行目に定義があります。

列挙型メンバ詳解

◆ anonymous enum

anonymous enum

単位種コード

TnbValueParUnit.h186 行目に定義があります。

◆ 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 行目に定義があります。

構築子と解体子

◆ CValueParUnitT() [1/4]

CValueParUnitT ( void  )

コンストラクタ.

単位は分子分母はそれぞれの基準単位、値は empty になります。

TnbValueParUnit.h192 行目に定義があります。

◆ CValueParUnitT() [2/4]

CValueParUnitT ( const CRealNumber v)

コンストラクタ.

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

引数
v値。

TnbValueParUnit.h201 行目に定義があります。

◆ CValueParUnitT() [3/4]

CValueParUnitT ( const CRealNumber v,
CExCode  code 
)

コンストラクタ.

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

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

TnbValueParUnit.h212 行目に定義があります。

◆ CValueParUnitT() [4/4]

CValueParUnitT ( const CRealNumber v,
CNumeCode  c1,
CDenoCode  c2 
)

コンストラクタ.

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

引数
v値。
c1分子の単位コード。
c2分母の単位コード。

TnbValueParUnit.h224 行目に定義があります。

関数詳解

◆ GetDenoUnitCode()

CDenoCode GetDenoUnitCode ( void  ) const

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

現在保持している分母単位コードを得ます。 本インスタンスが拡張単位を保持している場合、戻り値は無意味です。

戻り値
単位コード。

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

◆ GetPfParam()

static const TUnitParam * GetPfParam ( EPfUnitCode  code)
staticinherited

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

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

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

◆ GetUnitCode()

CNumeCode GetUnitCode ( void  ) const

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

現在保持している分子単位コードか、拡張単位コードを取得します。

戻り値
単位コード。

TnbValueParUnit.h325 行目に定義があります。

◆ GetUnitJapanString()

CStr GetUnitJapanString ( void  ) const

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

覚え書き
現在保持している単位のマーク文字列を返します。
戻り値
単位コード。

TnbValueParUnit.h366 行目に定義があります。

◆ GetUnitKindCode()

static DWORD GetUnitKindCode ( void  )
static

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

戻り値
単位種コード

TnbValueParUnit.h781 行目に定義があります。

◆ GetUnitKindString()

static CStr GetUnitKindString ( void  )
static

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

戻り値
単位種文字列

TnbValueParUnit.h772 行目に定義があります。

◆ GetUnitMarkString()

CStr GetUnitMarkString ( void  ) const

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

覚え書き
現在保持している単位のマーク文字列を返します。
戻り値
単位コード。

TnbValueParUnit.h346 行目に定義があります。

◆ GetValue() [1/3]

CRealNumber GetValue ( CExCode  code) const

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

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

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

TnbValueParUnit.h466 行目に定義があります。

◆ GetValue() [2/3]

CRealNumber GetValue ( CNumeCode  c1,
CDenoCode  c2 
) const

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

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

引数
c1分子単位コード。
c2分母単位コード。
戻り値
値。

TnbValueParUnit.h480 行目に定義があります。

◆ GetValue() [3/3]

CRealNumber GetValue ( void  ) const

[取得] 値取得.

現在保持している単位コードのまま、値を返します。

戻り値
値。

TnbValueParUnit.h455 行目に定義があります。

◆ HasExCode()

bool HasExCode ( void  ) const

[確認] 単位コード確認.

現在保持している単位コードが、拡張単位コードか否かを確認します。

戻り値
true拡張単位コードを保持している。
false保持していない。

TnbValueParUnit.h315 行目に定義があります。

◆ operator!=()

bool operator!= ( const CValueParUnitT< U1, U2, EX > &  t) const

[確認] 比較

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

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

◆ operator*() [1/2]

CValueParUnitT operator* ( const CRealNumber v) const

[計算] 掛算.

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

TnbValueParUnit.h619 行目に定義があります。

◆ operator*() [2/2]

CValueUnitT< U1 > operator* ( const CValueUnitT< U2 > &  t) const

[計算] 掛算 (分子単位 = 本クラス × 分母単位).

引数
t分母単位の値
戻り値
分子単位の値

TnbValueParUnit.h641 行目に定義があります。

◆ operator*=()

CValueParUnitT & operator*= ( const CRealNumber v)

[計算] 掛算代入.

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

TnbValueParUnit.h608 行目に定義があります。

◆ operator+() [1/2]

CValueParUnitT operator+ ( const CRealNumber v) const

[計算] 加算.

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

TnbValueParUnit.h527 行目に定義があります。

◆ operator+() [2/2]

CValueParUnitT operator+ ( const CValueParUnitT< U1, U2, EX > &  u) const

[計算] 加算.

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

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

TnbValueParUnit.h505 行目に定義があります。

◆ operator+=() [1/2]

CValueParUnitT & operator+= ( const CRealNumber v)

[計算] 加算代入.

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

TnbValueParUnit.h516 行目に定義があります。

◆ operator+=() [2/2]

CValueParUnitT & operator+= ( const CValueParUnitT< U1, U2, EX > &  u)

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

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

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

TnbValueParUnit.h493 行目に定義があります。

◆ operator-() [1/2]

CValueParUnitT operator- ( const CRealNumber v) const

[計算] 減算.

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

TnbValueParUnit.h584 行目に定義があります。

◆ operator-() [2/2]

CValueParUnitT operator- ( const CValueParUnitT< U1, U2, EX > &  u) const

[計算] 単位付値減算.

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

引数
u単位付値。
戻り値
減算結果。

TnbValueParUnit.h562 行目に定義があります。

◆ operator-=() [1/2]

CValueParUnitT & operator-= ( const CRealNumber v)

[計算] 減算代入.

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

TnbValueParUnit.h573 行目に定義があります。

◆ operator-=() [2/2]

CValueParUnitT & operator-= ( const CValueParUnitT< U1, U2, EX > &  u)

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

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

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

TnbValueParUnit.h550 行目に定義があります。

◆ operator/() [1/2]

CValueParUnitT operator/ ( const CRealNumber v) const

[計算] 割算.

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

TnbValueParUnit.h678 行目に定義があります。

◆ operator/() [2/2]

CRealNumber operator/ ( const CValueParUnitT< U1, U2, EX > &  u) const

[計算] 割算 (値 = 本クラス ÷ 本クラス).

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

TnbValueParUnit.h705 行目に定義があります。

◆ operator/=()

CValueParUnitT & operator/= ( const CRealNumber v)

[計算] 割算代入.

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

TnbValueParUnit.h667 行目に定義があります。

◆ operator<()

bool operator< ( const CValueParUnitT< U1, U2, EX > &  t) const

[確認] 比較

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

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

◆ operator<=()

bool operator<= ( const CValueParUnitT< U1, U2, EX > &  t) const

[確認] 比較

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

TnbValueParUnit.h744 行目に定義があります。

◆ operator==()

bool operator== ( const CValueParUnitT< U1, U2, EX > &  t) const

[確認] 比較

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

TnbValueParUnit.h717 行目に定義があります。

◆ operator>()

bool operator> ( const CValueParUnitT< U1, U2, EX > &  t) const

[確認] 比較

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

TnbValueParUnit.h753 行目に定義があります。

◆ operator>=()

bool operator>= ( const CValueParUnitT< U1, U2, EX > &  t) const

[確認] 比較

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

TnbValueParUnit.h762 行目に定義があります。

◆ Set() [1/3]

void Set ( const CRealNumber v)

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

引数
v値。

TnbValueParUnit.h234 行目に定義があります。

◆ Set() [2/3]

void Set ( const CRealNumber v,
CExCode  code 
)

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

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

TnbValueParUnit.h245 行目に定義があります。

◆ Set() [3/3]

void Set ( const CRealNumber v,
CNumeCode  c1,
CDenoCode  c2 
)

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

引数
v値。
c1分子単位コード。
c2分母単位コード。

TnbValueParUnit.h259 行目に定義があります。

◆ ToDenoUnit()

CValueParUnitT & ToDenoUnit ( CDenoCode  code)

[変換] 単位変更.

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

TnbValueParUnit.h429 行目に定義があります。

◆ ToNormalUnit()

void ToNormalUnit ( void  )

[変換] 単位変更 (基本単位へ).

覚え書き
保持している単位が拡張単位の場合、基本単位に変更します。値も計算されます。

TnbValueParUnit.h385 行目に定義があります。

◆ ToString() [1/3]

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

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

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

TnbValueParUnit.h286 行目に定義があります。

◆ ToString() [2/3]

CStr ToString ( CNumeCode  c1,
CDenoCode  c2,
LPCTSTR  lpszFormat = NULL 
) const

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

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

TnbValueParUnit.h302 行目に定義があります。

◆ ToString() [3/3]

CStr ToString ( LPCTSTR  lpszFormat = NULL) const

[取得] 文字列で取得

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

TnbValueParUnit.h273 行目に定義があります。

◆ ToUnit() [1/2]

CValueParUnitT & ToUnit ( CExCode  code)

[変換] 単位変更.

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

TnbValueParUnit.h404 行目に定義があります。

◆ ToUnit() [2/2]

CValueParUnitT & ToUnit ( CNumeCode  c1,
CDenoCode  c2 
)

[変換] 単位変更.

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

TnbValueParUnit.h417 行目に定義があります。