W tym przykładzie coord_squared_t
jest alias typu całkowitą z co najmniej dwukrotnie większa od rodzaju całkowitej coord_t
:C++ Typ całkowitą dwukrotność szerokości danego typu
typedef int_least32_t coord_t;
coord_squared_t CalculateSquaredHypothenuse(coord_t x, coord_t y){
coord_squared_t _x=x;
coord_squared_t _y=y;
return _x*_x+_y*_y;
}
Co mogą być stosowane do ekspresji coord_squared_t
pod względem coord_t
? Czy jest coś w standardowej bibliotece, która pozwala mi zrobić coś w rodzaju double_width<coord_t>::type
, aby uzyskać prawidłową szerokość, zamiast jawnie wybierać typ?
C++ 11 lub C++ 14 są w porządku.
Dlaczego nie używać naprawionych typów takich jak 'int32_t' i' int64_t'? – NathanOliver
Możesz jawnie odwzorować stałe liczby całkowite ... nic nadzwyczajnego, przyznaję – davidhigh
Mogłem, ale zgodnie z odniesieniem 'int8_t',' int16_t' i przyjaciele są opcjonalne, tylko 'int_leastN_t' jest gwarantowane. Zapisywanie warunków dla czterech typów liczb całkowitych jest rozwiązaniem, ale miałem nadzieję na coś lepszego. – Bernard