AM Daemon ライブラリリファレンス
名前空間 | クラス | マクロ定義 | 関数
util : ユーティリティ

AM Daemon プロセスとは無関係だが便利なクラス、関数等の定義。 [詳解]

+ util : ユーティリティ 連携図

名前空間

 amdaemon::util
 AM Daemon プロセスとは無関係だが便利なクラス、関数等を定義する名前空間。
 

クラス

class  amdaemon::util::Clock
 クロックカウント値とその時間差分計算処理を提供するクラス。 [詳解]
 
struct  amdaemon::util::DateTime
 マイクロ秒精度の日付時刻を表す構造体 DateTime のヘッダ。 [詳解]
 
class  amdaemon::util::DnsResolver
 ドメイン名のIPv4名前解決を非同期で行うクラス。 [詳解]
 
class  amdaemon::util::Encoding
 文字コード変換処理を提供する静的クラス。 [詳解]
 
struct  amdaemon::util::IpAddress
 IPv4のIPアドレスを表す構造体。 [詳解]
 
class  amdaemon::util::JsonArrayAdder
 JSON配列への要素追加処理を提供する抽象クラス。 [詳解]
 
class  amdaemon::util::JsonObjectAdder
 JSONオブジェクトへの要素追加処理を提供する抽象クラス。 [詳解]
 
class  amdaemon::util::JsonTree
 JSONツリーを作成するためのクラス。 [詳解]
 
class  amdaemon::util::Mutex
 プロセス間およびスレッド間で排他制御を行うためのクラス。 [詳解]
 
class  amdaemon::util::ScopeExit
 スコープが外れた時に任意の処理を行うクラス。 [詳解]
 
class  amdaemon::util::StackTrace
 スタックトレース情報クラス。 [詳解]
 
struct  amdaemon::util::TimeSpan
 マイクロ秒精度の時間間隔を表す構造体。 [詳解]
 
struct  amdaemon::util::IsBinaryCopyable< T >
 型 T がバイナリベースでコピー可能な型であるか否かを調べるメタ関数。 [詳解]
 
struct  amdaemon::util::IsBinaryCopyable< T[N]>
 型 T[N] がバイナリベースでコピー可能な型であるか否かを調べるメタ関数。 [詳解]
 
class  amdaemon::util::WinEncoding
 Windows環境に特化した文字コード変換処理を提供する静的クラス。 [詳解]
 
class  amdaemon::util::WinsockScope
 Winsockの初期化と解放を行うRAIIクラス。 [詳解]
 

マクロ定義

#define AMDAEMON_CONSTEXPR_SUPPORTED
 constexpr キーワードが実装されている環境ならば真。(VC++2015以降) [詳解]
 
#define AMDAEMON_CONSTEXPR
 環境に応じて constexpr キーワードまたは inline キーワードとなる。 [詳解]
 
#define AMDAEMON_STRING_TO_WIDE(s)
 char リテラル文字列を wchar_t リテラル文字列に変換する。 [詳解]
 
#define AMDAEMON_ARRAYSIZE(arr)
 組み込み配列の要素数を取得する。 [詳解]
 
#define AMDAEMON_STATIC_ASSERT(flag)
 引数が偽であればコンパイルエラーとする。 [詳解]
 
#define AMDAEMON_STATIC_ASSERT_MSG(flag, msg)
 引数が偽であればコンパイルエラーとし、指定したメッセージを表示する。 [詳解]
 
#define AMDAEMON_STATIC_ARRAYSIZE_ASSERT(arr, size)
 組み込み配列の要素数が等しくなければコンパイルエラーとする。 [詳解]
 

関数

template<class Container , class T >
std::ptrdiff_t amdaemon::util::findIndex (Container &container, const T &target)
 コンテナから指定した値を検索し、そのインデックスを返す。 [詳解]
 
template<class DestContainer , class SrcContainer >
DestContainer amdaemon::util::toContainer (SrcContainer &&src)
 コンテナを別のコンテナ型に変換する。 [詳解]
 
template<class Container , class SizeType , class Getter >
Container amdaemon::util::toContainer (SizeType count, Getter &&getter)
 インデックス値を引数に取る関数から得た値をコンテナに格納して返す。 [詳解]
 
template<std::size_t N, class T >
std::bitset< N > amdaemon::util::toBitset (T &&value)
 引数値を std::bitset 型に変換する。 [詳解]
 
template<class Integer >
auto amdaemon::util::toBitset (Integer value) -> typename std::enable_if< std::is_integral< Integer >::value, std::bitset< sizeof(Integer)*8 >>::type
 数値を std::bitset 型に変換する。 [詳解]
 
template<class T , std::size_t Size>
AMDAEMON_CONSTEXPR std::size_t amdaemon::util::getArraySize (const T(&)[Size])
 組み込み配列の要素数を取得する。 [詳解]
 
bool amdaemon::util::isFinite (float value)
 浮動小数点数が非数値ではないか否かを取得する。 [詳解]
 
bool amdaemon::util::isFinite (double value)
 浮動小数点数が非数値ではないか否かを取得する。 [詳解]
 
AMDAEMON_CONSTEXPR bool amdaemon::util::isAsciiDigit (wchar_t c)
 文字がASCIIの10進数字であるか否かを取得する。 [詳解]
 
AMDAEMON_CONSTEXPR bool amdaemon::util::isAsciiAlphabet (wchar_t c)
 文字がASCIIのアルファベットであるか否かを取得する。 [詳解]
 
void amdaemon::util::copyString (const wchar_t *src, wchar_t *dest, std::size_t destCount)
 文字列を文字列バッファへコピーする。 [詳解]
 
template<std::size_t N>
void amdaemon::util::copyString (const wchar_t *src, wchar_t(&dest)[N])
 文字列を文字配列へコピーする。 [詳解]
 
template<class TDest , class TSrc >
TDest amdaemon::util::transformLinear (TSrc value, TSrc minValue, TSrc maxValue, TDest transMin, TDest transMax)
 1次元値の線形変換を行う。 [詳解]
 

詳解

AM Daemon プロセスとは無関係だが便利なクラス、関数等の定義。

マクロ定義詳解

#define AMDAEMON_CONSTEXPR_SUPPORTED

constexpr キーワードが実装されている環境ならば真。(VC++2015以降)

#define AMDAEMON_CONSTEXPR

環境に応じて constexpr キーワードまたは inline キーワードとなる。

  • VC++2015以降およびVC++以外のコンパイラでは constexpr キーワードと等価。
  • 上記以外の環境では inline キーワードと等価。
#define AMDAEMON_STRING_TO_WIDE (   s)

char リテラル文字列を wchar_t リテラル文字列に変換する。

引数
[in]schar リテラル文字列。

引数にマクロを渡した場合、マクロを展開した上で文字列変換する。

#define AMDAEMON_ARRAYSIZE (   arr)

組み込み配列の要素数を取得する。

引数
[in]arr組み込み配列。
#define AMDAEMON_STATIC_ASSERT (   flag)

引数が偽であればコンパイルエラーとする。

引数
[in]flag検証する真偽値。
#define AMDAEMON_STATIC_ASSERT_MSG (   flag,
  msg 
)

引数が偽であればコンパイルエラーとし、指定したメッセージを表示する。

引数
[in]flag検証する真偽値。
[in]msgコンパイルエラー時に表示するメッセージ。
#define AMDAEMON_STATIC_ARRAYSIZE_ASSERT (   arr,
  size 
)

組み込み配列の要素数が等しくなければコンパイルエラーとする。

引数
[in]arr組み込み配列。
[in]size期待する要素数。

関数詳解

template<class Container , class T >
std::ptrdiff_t amdaemon::util::findIndex ( Container &  container,
const T &  target 
)

コンテナから指定した値を検索し、そのインデックスを返す。

テンプレート引数
Container検索対象のコンテナ型。
T検索する値の型。
引数
[in]container検索対象のコンテナ。
[in]target検索する値。
戻り値
インデックス。見つからなければ -1 。
template<class DestContainer , class SrcContainer >
DestContainer amdaemon::util::toContainer ( SrcContainer &&  src)
inline

コンテナを別のコンテナ型に変換する。

テンプレート引数
DestContainer変換先のコンテナ型。 SrcContainer と同じ型であるか、 イテレータ範囲を受け取るコンストラクタが定義されていなければならない。
SrcContainer変換元のコンテナ型。引数から推論される。
引数
[in]src変換元のコンテナ。
戻り値
変換されたコンテナ。
template<class Container , class SizeType , class Getter >
Container amdaemon::util::toContainer ( SizeType  count,
Getter &&  getter 
)

インデックス値を引数に取る関数から得た値をコンテナに格納して返す。

テンプレート引数
Container変換先のコンテナ型。 std::back_insert_iterator による末尾への要素追加が可能でなければならない。
SizeType要素数を表す型。引数から推論される。 一般的な整数型の要件を満たしていなければならない。
GetterSizeType 型のインデックス値を引数に取る関数型。引数から推論される。 戻り値の型を Container の要素型に変換可能でなければならない。
引数
[in]count要素数。
[in]getterインデックス値を引数に取る関数。
戻り値
作成されたコンテナ。
template<std::size_t N, class T >
std::bitset<N> amdaemon::util::toBitset ( T &&  value)
inline

引数値を std::bitset 型に変換する。

テンプレート引数
Nビット数。
T引数の型。引数から推論される。 std::bitset<N> 型のコンストラクタに受け渡し可能でなければならない。
引数
[in]value引数値。
戻り値
std::bitset<N> 型の値。
template<class Integer >
auto amdaemon::util::toBitset ( Integer  value) -> typename std::enable_if< std::is_integral<Integer>::value, std::bitset<sizeof(Integer) * 8>>::type
inline

数値を std::bitset 型に変換する。

テンプレート引数
Integer数値型。引数から推論される。組み込みの整数型でなければならない。
引数
[in]value数値。
戻り値
std::bitset<sizeof(Integer) * 8> 型の値。
template<class T , std::size_t Size>
AMDAEMON_CONSTEXPR std::size_t amdaemon::util::getArraySize ( const   T(&)[Size])

組み込み配列の要素数を取得する。

テンプレート引数
T組み込み配列の要素型。
Size組み込み配列の要素数。
戻り値
要素数。
bool amdaemon::util::isFinite ( float  value)
inline

浮動小数点数が非数値ではないか否かを取得する。

引数
[in]value調べる浮動小数点数値。
戻り値
truevalue が非数値ではない場合。
falsevalue が非数値である場合。

value が下記のいずれの値でもなければ true を返す。

  • 正の無限大
  • 負の無限大
  • NaN
bool amdaemon::util::isFinite ( double  value)
inline

浮動小数点数が非数値ではないか否かを取得する。

引数
[in]value調べる浮動小数点数値。
戻り値
truevalue が非数値ではない場合。
falsevalue が非数値である場合。

value が下記のいずれの値でもなければ true を返す。

  • 正の無限大
  • 負の無限大
  • NaN
AMDAEMON_CONSTEXPR bool amdaemon::util::isAsciiDigit ( wchar_t  c)

文字がASCIIの10進数字であるか否かを取得する。

引数
[in]c調べる文字。
戻り値
trueASCIIの10進数字である場合。
falseASCIIの10進数字ではない場合。

標準関数 std::iswdigit は現在のロケールを考慮するため、 全角文字や想定していない文字まで10進数字として判定される可能性がある。

AMDAEMON_CONSTEXPR bool amdaemon::util::isAsciiAlphabet ( wchar_t  c)

文字がASCIIのアルファベットであるか否かを取得する。

引数
[in]c調べる文字。
戻り値
trueASCIIのアルファベットである場合。
falseASCIIのアルファベットではない場合。

標準関数 std::iswalpha は現在のロケールを考慮するため、 全角文字や想定していない文字までアルファベットとして判定される可能性がある。

void amdaemon::util::copyString ( const wchar_t *  src,
wchar_t *  dest,
std::size_t  destCount 
)
inline

文字列を文字列バッファへコピーする。

テンプレート引数
N文字配列の要素数。
引数
[in]srcコピー元の文字列。
[out]destコピー先の文字列バッファ。
[in]destCountコピー先バッファの許容文字数。
  • 必ず終端の '¥0' は付与される。
  • 引数 src の文字数が destCount 以上である場合、 (destCount - 1) 文字目までがコピーされる。
template<std::size_t N>
void amdaemon::util::copyString ( const wchar_t *  src,
wchar_t(&)  dest[N] 
)
inline

文字列を文字配列へコピーする。

テンプレート引数
N文字配列の要素数。
引数
[in]srcコピー元の文字列。
[out]destコピー先の文字配列。
  • 必ず終端の '¥0' は付与される。
  • 引数 src の文字数が N 以上である場合、 (N - 1) 文字目までがコピーされる。
template<class TDest , class TSrc >
TDest amdaemon::util::transformLinear ( TSrc  value,
TSrc  minValue,
TSrc  maxValue,
TDest  transMin,
TDest  transMax 
)
inline

1次元値の線形変換を行う。

テンプレート引数
TDest線形変換後の値型。引数から推論される。
TSrc線形変換前の値型。引数から推論される。
引数
[in]value線形変換する値。
[in]minValue線形変換前の最小値。 maxValue と同値であってはならない。
[in]maxValue線形変換前の最大値。 minValue と同値であってはならない。
[in]transMinminValue を線形変換した時の値。
[in]transMaxmaxValue を線形変換した時の値。
戻り値
線形変換した値。