6 #ifndef AMDAEMON_UTIL_MISC_H 7 #define AMDAEMON_UTIL_MISC_H 15 #define AMDAEMON_STD_FINITE_SUPPORTED AMDAEMON_MSVC_COMPATIBLE(1800) 17 #if AMDAEMON_STD_FINITE_SUPPORTED 19 #else // AMDAEMON_STD_FINITE_SUPPORTED 21 #endif // AMDAEMON_STD_FINITE_SUPPORTED 27 #define AMDAEMON_CONSTEXPR_SUPPORTED AMDAEMON_MSVC_COMPATIBLE(1900) 34 #if AMDAEMON_CONSTEXPR_SUPPORTED 35 #define AMDAEMON_CONSTEXPR constexpr 36 #else // AMDAEMON_CONSTEXPR_SUPPORTED 37 #define AMDAEMON_CONSTEXPR inline 38 #endif // AMDAEMON_CONSTEXPR_SUPPORTED 45 #define AMDAEMON_STRING_TO_WIDE_IMPL_(s) L##s 46 #define AMDAEMON_STRING_TO_WIDE(s) AMDAEMON_STRING_TO_WIDE_IMPL_(s) 61 template<
class T, std::
size_t Size>
79 #if AMDAEMON_STD_FINITE_SUPPORTED 80 return (std::isfinite(value) != 0);
81 #else // AMDAEMON_STD_FINITE_SUPPORTED 83 return (::_finite(value) != 0);
84 #endif // AMDAEMON_STD_FINITE_SUPPORTED 90 #if AMDAEMON_STD_FINITE_SUPPORTED 91 return (std::isfinite(value) != 0);
92 #else // AMDAEMON_STD_FINITE_SUPPORTED 93 return (::_finite(value) != 0);
94 #endif // AMDAEMON_STD_FINITE_SUPPORTED 106 return (c >= L
'0' && c <= L
'9');
118 return ((c >= L
'a' && c <= L
'z') || (c >= L
'A' && c <= L
'Z'));
130 inline void copyString(
const wchar_t* src,
wchar_t* dest, std::size_t destCount)
133 (void)::wcsncpy_s(dest, destCount, src, destCount - 1);
134 #else // AMDAEMON_ON_MSVC 135 (std::wcsncpy(dest, src, destCount - 1))[destCount - 1] = L
'¥0';
136 #endif // AMDAEMON_ON_MSVC 146 template<std::
size_t N>
147 inline void copyString(
const wchar_t* src,
wchar_t (&dest)[N])
161 template<
class TDest,
class TSrc>
169 const auto range = maxValue - minValue;
170 const auto transRange = transMax - transMin;
174 static_cast<TDest
>((value - minValue) * transRange / range + transMin);
188 template<
class T, std::
size_t Size>
189 char (&array_size_helper(T (&)[Size]))[Size];
199 #define AMDAEMON_ARRAYSIZE(arr) sizeof(::amdaemon::util::detail::array_size_helper(arr)) 203 #endif // AMDAEMON_UTIL_MISC_H bool isFinite(float value)
浮動小数点数が非数値ではないか否かを取得する。
Definition: misc.h:77
AMDAEMON_CONSTEXPR bool isAsciiAlphabet(wchar_t c)
文字がASCIIのアルファベットであるか否かを取得する。
Definition: misc.h:116
AM Daemon ライブラリクラス群の基底名前空間。
Definition: Log.h:13
void copyString(const wchar_t *src, wchar_t *dest, std::size_t destCount)
文字列を文字列バッファへコピーする。
Definition: misc.h:130
TDest transformLinear(TSrc value, TSrc minValue, TSrc maxValue, TDest transMin, TDest transMax)
1次元値の線形変換を行う。
Definition: misc.h:162
AMDAEMON_CONSTEXPR std::size_t getArraySize(const T(&)[Size])
組み込み配列の要素数を取得する。
Definition: misc.h:62
AMDAEMON_CONSTEXPR bool isAsciiDigit(wchar_t c)
文字がASCIIの10進数字であるか否かを取得する。
Definition: misc.h:104
#define AMDAEMON_CONSTEXPR
環境に応じて constexpr キーワードまたは inline キーワードとなる。
Definition: misc.h:35