[gdal-dev] Starting a discussion on style and coding guidelines
mateusz at loskot.net
Thu May 5 03:15:14 PDT 2016
On 5 May 2016 at 11:28, Even Rouault <even.rouault at spatialys.com> wrote:
> Le jeudi 05 mai 2016 11:09:48, Mateusz Loskot a écrit :
>> On 5 May 2016 at 01:45, Even Rouault <even.rouault at spatialys.com> wrote:
>> > Of the potential issues with requiring C++11, I can think of OSGeo4W. It
>> > is mostly(completely?) built with Visual Studio 2010. And from
>> > https://msdn.microsoft.com/en-us/library/hh567368.aspx , support of C++11
>> > is only partial in VS 2010
>> VS2013 is the lowest version sensible to consider regarding C++11 support.
>> > On the other hand regarding dependencies of GDAL, the binary propritary
>> > SDKs with a C++ API could be a problem, although they will likely move
>> > on too. - FileGDB SDK 1.4: available for VS2010, VS2012, VS2013
>> > - ECW SDK 5.2.1: available for VS2010, VS2012, VS2013
>> AFAICT, GDAL built using VS2015 links against the 5.2.1 version fine.
> Do you link against the VS2013 .lib ?
Yes, namely these:
ls -1 ERDAS_ECW_JPEG_2000\lib\vc120\Win32
>> > - MrSID SDK: I didn't check. Perhaps Kirk can tell us ?
>> Similarly to the ECW above, version 9.1.0 links fine too.
>> > But I'm not sure about the compatibility of C++11 build against non-C++11
>> > builds in the VS realm : can a GDAL C++11 build link against a library
>> > built without C++11 enabled ? Will not there be ABI problems ?
>> Although mixing C run-time libraries is a bad idea generally,
>> kosher C APIs should be fine.
> I'm not too worried about C ABI. My mention of C++03 ABI vs C++11 ABI was for
> the dependencies with those SDK that we use through their C++ API
Visual C++ does not promise ABI compatibility for anything but a
"portable type" 
- a C built-in type or a struct that contains only C built-in types
Mixing binaries built with different compiler versions or even
is not recommended . It might or might not work :)
Mateusz Loskot, http://mateusz.loskot.net
More information about the gdal-dev