【C++】整数型 int
// データ損失の可能性あり
// int to short
short a = static_cast<short>(intVar);
// 通常は暗黙の変換可能
// int to long
long b = static_cast<long>(intVar);
// 通常は暗黙の変換可能
// int to long long
long long c = static_cast<long long>(intVar);
// 負の値が正の値にラップされる
// int to unsigned int
unsigned int d = static_cast<unsigned int>(intVar);
// データ損失の可能性あり
// int to unsigned short
unsigned short e = static_cast<unsigned short>(intVar);
// 静的キャスト
// int to unsigned long
unsigned long f = static_cast<unsigned long>(intVar);
// 静的キャスト
// int to unsigned long long
unsigned long long g = static_cast<unsigned long long>(intVar);
// データ損失の可能性あり
// int to char
char h = static_cast<char>(intVar);
// 静的キャスト
// int to wchar_t
wchar_t i = static_cast<wchar_t>(intVar);
// 静的キャスト
// int to char16_t
char16_t j = static_cast<char16_t>(intVar);
// 静的キャスト
// int to char32_t
char32_t k = static_cast<char32_t>(intVar);
// 通常は暗黙の変換可能
// int to float
float l = static_cast<float>(intVar);
// 通常は暗黙の変換可能
// int to double
double m = static_cast<double>(intVar);
// 通常は暗黙の変換可能
// int to long double
long double n = static_cast<long double>(intVar);
// 0 は false、それ以外は true
// int to bool
bool o = static_cast<bool>(intVar);
// データ損失の可能性あり
// int to int8_t
int8_t p = static_cast<int8_t>(intVar);
// データ損失の可能性あり
// int to int16_t
int16_t q = static_cast<int16_t>(intVar);
// 通常は暗黙の変換可能(ただし、int と int32_t のサイズが異なる場合は注意)
// int to int32_t
int32_t r = static_cast<int32_t>(intVar);
// 通常は暗黙の変換可能
// int to int64_t
int64_t s = static_cast<int64_t>(intVar);
// データ損失の可能性あり
// int to uint8_t
uint8_t t = static_cast<uint8_t>(intVar);
// 静的キャスト
// int to uint16_t
uint16_t u = static_cast<uint16_t>(intVar);
// 静的キャスト
// int to uint32_t
uint32_t v = static_cast<uint32_t>(intVar);
// 静的キャスト
// int to uint64_t
uint64_t w = static_cast<uint64_t>(intVar);
// 列挙型に対応する整数値への変換
// int to enum (Assuming EnumType is the enum)
EnumType x = static_cast<EnumType>(intVar);
// より型安全
// int to enum class (Assuming EnumClassType is the enum class)
EnumClassType y = static_cast<EnumClassType>(intVar);
// 非推奨、危険な操作
// int to pointer (Not recommended and dangerous)
int* z = reinterpret_cast<int*>(static_cast<std::uintptr_t>(intVar));