fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] About Supporting 2GiB+ Soundfonts on Windows


From: Tom M.
Subject: Re: [fluid-dev] About Supporting 2GiB+ Soundfonts on Windows
Date: Tue, 17 Mar 2020 09:44:44 +0100

> If you decided to require C99, I would think you would want to use int64_t 
> and its relatives for portability.

I actually had "long long" in mind, because int64_t would require
fluidsynth's header to include stdint.h, and whenever possible I would
like to avoid polluting our header with any C system header (for the
sake of portability to C++). Also note that int64_t is an optional
type and may only be provided if the implementation supports it. (The
latter doesn't really make sense in practice, because long long is an
intrinsic type guaranteed to be at least 64 bits wide. And because
long long must be available, int64_t will also be available.)

Based on Reinhold's thought, the idea would be to use something like

#if defined(_MSVC_VER < VisualStudio2015)
typedef __int64 fluid_long_long_t; // even on 32bit windows
#else
typedef long long fluid_long_long_t;
#endif

in our public header. Which basically means: Fluidsynth's source code
stays C89. The public header will be compatible with C99 (or C++11)
UNLESS it's being compiled with an old VS in which case we provide a
fallback. This should provide enough portability while still retaining
ABI compatibility between and MSVC and MinGW compiled fluidsynth.

Should it really be that simple or am I missing smth.?

Tom



reply via email to

[Prev in Thread] Current Thread [Next in Thread]