libopenmpt
0.3.1+release.autotools
cross-platform C++ and C library to decode tracked music files
|
any other C++11 compliant compiler (full standard compliant mode is known to work with GCC >= 5.1 and Clang >= 3.5)
libopenmpt makes the following assumptions about the C++ implementation used for building:
CHAR_BIT == 8
(enforced by static_assert)sizeof(char) == 1
(enforced by static_assert)std::uintptr_t
(enforced by static_assert)sizeof(float) == 4
(enforced by static_assert)sizeof(double) == 8
(enforced by static_assert)__BYTE_ORDER__
is provided by the compiler and __STDC_IEC_559__ == 1
, the endianness of integers is the same as the endianness of floats (implicitly assumed)wchar_t
encoding is either UTF-16 or UTF-32 (implicitly assumed)wchar_t
(implicitly assumed)libopenmpt does not rely on any specific implementation defined or undefined behaviour (if it does, that's a bug in libopenmpt). In particular:
char
can be signed
or unsigned
float
and double
can be non-IEEE754