[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