[gdal-dev] GIntBig in the bindings
Ari Jolma
ari.jolma at gmail.com
Fri May 22 02:25:48 PDT 2015
22.05.2015, 11:38, Ari Jolma kirjoitti:
> It seems that there are quite a few interface methods with two
> versions where the only difference is whether GIntBig is used or not.
> Also some methods do not have GIntBig when they actually should use it
> since it is in the GDAL API.
>
> I found out that at least in Swig Perl default typemaps have long long
> and unsigned long long. Thus using GIntBig should mostly be just the
> case of saying
>
> %apply (long long) { GIntBig };
>
> At least Python, Java and CSharp seem to have default typemaps for
> long long and unsigned long long.
>
> However, what GIntBig really is, is a configure time decision. That
> should be somehow propagated to the bindings.
It is a compile time decision. It can be propagated like this (in
interface file) (copied a piece of cpl_port.h):
%include "../../port/cpl_config.h"
#if defined(WIN32) && defined(_MSC_VER)
typedef __int64 GIntBig;
typedef unsigned __int64 GUIntBig;
#elif HAVE_LONG_LONG
typedef long long GIntBig;
typedef unsigned long long GUIntBig;
#else
typedef long GIntBig;
typedef unsigned long GUIntBig;
#endif
Ari
>
> Ari
>
More information about the gdal-dev
mailing list