[gdal-dev] std::numeric_limits<int64_t>::min() vs LLONG_MIN
Paul Meems
bontepaarden at gmail.com
Sun Dec 18 06:32:32 PST 2022
Thanks all for your suggestions.
I did some more research and it seems to be an issue with the preprocessor
on Windows.
Adding some brackets solves the issue as well:
// old
constexpr int64_t GDAL_PAM_DEFAULT_NODATA_VALUE_INT64 =
std::numeric_limits<int64_t>::min();
constexpr uint64_tGDAL_PAM_DEFAULT_NODATA_VALUE_UINT64=
std::numeric_limits<uint64_t>::max();
// new:
constexpr int64_t GDAL_PAM_DEFAULT_NODATA_VALUE_INT64 =*(*
std::numeric_limits<int64_t>::min*)*();
constexpr uint64_t GDAL_PAM_DEFAULT_NODATA_VALUE_UINT64 =*(*
std::numeric_limits<uint64_t>::max*)*();
I'm not sure what the impact would be for non-windows compilers, but if no
impact could this be changed in the code?
Thanks,
Paul Meems
Op za 17 dec. 2022 om 07:10 schreef <dg0yt at darc.de>:
> I'm not using MSVC, so this is a guess:
> Are you including 'windows.h' without 'NOMINMAX' being defined?
> Then you will get macros which interfere with the limits code.
>
> Regards, Kai.
>
> > Paul Meems <bontepaarden at gmail.com> hat am 17.12.2022 00:46 CET
> geschrieben:
> >
> >
> > Thanks, Kurt for your response.
> >
> > I'm getting a very vague error message:
> > E0040 expected an identifier.
> >
> >
> > Regards,
> >
> > Paul
> >
> >
> > Op za 17 dec. 2022 om 00:40 schreef Kurt Schwehr <schwehr at gmail.com>:
> > > What exact error are you getting?
> > >
> > >
> > > On Fri, Dec 16, 2022 at 3:31 PM Paul Meems <bontepaarden at gmail.com>
> wrote:
> > > > Hello List,
> > > >
> > > > We're trying to update MapWinGIS which is using the GDAL libraries
> from gisinternals.com (http://gisinternals.com)
> > > > Currently, we use the stable daily of December
> 9: release-1928-gdal-3-5-mapserver-8-0
> > > >
> > > > I'm using VS2019 (on Windows) to compile and I'm having issues with
> two lines in gdal_pam.h, around line 215.
> > > > We need to change these two lines:
> > > >
> > > > * constexpr int64_t GDAL_PAM_DEFAULT_NODATA_VALUE_INT64 =
> std::numeric_limits<int64_t>::min();
> > > > * constexpr uint64_t GDAL_PAM_DEFAULT_NODATA_VALUE_UINT64 =
> std::numeric_limits<uint64_t>::max();
> > > > To
> > > > * constexpr int64_t GDAL_PAM_DEFAULT_NODATA_VALUE_INT64 =
> LLONG_MIN;
> > > > * constexpr uint64_t GDAL_PAM_DEFAULT_NODATA_VALUE_UINT64 =
> LLONG_MAX;
> > > > I prefer not to alter the files from gisinternals.com (
> http://gisinternals.com). Is this what we can solve on our end?
> > > > Is it related to the C++ version? We use these:
> > > >
> > > > * ISO C++14 Standard (/std:c++14)
> > > > * ISO C11 Standard (/std:c11)
> > > > Thanks for any advice.
> > > >
> > > > Paul Meems
> > > >
> > > > _______________________________________________
> > > > gdal-dev mailing list
> > > > gdal-dev at lists.osgeo.org
> > > > https://lists.osgeo.org/mailman/listinfo/gdal-dev
> > > >
> > _______________________________________________
> > gdal-dev mailing list
> > gdal-dev at lists.osgeo.org
> > https://lists.osgeo.org/mailman/listinfo/gdal-dev
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/gdal-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20221218/77cb17e4/attachment.htm>
More information about the gdal-dev
mailing list