irrt: compatibility with pre-C23 compilers

This commit is contained in:
Sébastien Bourdeauducq 2024-09-05 18:54:55 +08:00
parent 9c33c4209c
commit bd06155f34
1 changed files with 10 additions and 1 deletions

View File

@ -1,13 +1,22 @@
#pragma once #pragma once
#if __STDC_VERSION__ >= 202000
using int8_t = _BitInt(8); using int8_t = _BitInt(8);
using uint8_t = unsigned _BitInt(8); using uint8_t = unsigned _BitInt(8);
using int32_t = _BitInt(32); using int32_t = _BitInt(32);
using uint32_t = unsigned _BitInt(32); using uint32_t = unsigned _BitInt(32);
using int64_t = _BitInt(64); using int64_t = _BitInt(64);
using uint64_t = unsigned _BitInt(64); using uint64_t = unsigned _BitInt(64);
#else
using int8_t = _ExtInt(8);
using uint8_t = unsigned _ExtInt(8);
using int32_t = _ExtInt(32);
using uint32_t = unsigned _ExtInt(32);
using int64_t = _ExtInt(64);
using uint64_t = unsigned _ExtInt(64);
#endif
// NDArray indices are always `uint32_t`. // NDArray indices are always `uint32_t`.
using NDIndex = uint32_t; using NDIndex = uint32_t;
// The type of an index or a value describing the length of a range/slice is always `int32_t`. // The type of an index or a value describing the length of a range/slice is always `int32_t`.
using SliceIndex = int32_t; using SliceIndex = int32_t;