Ugh, so it's worse than I thought.

I suppose I'm willing to fix and submit a patch to address this.

Do I need to put in the proper macros to make it compile on everything from 
C++03 through 17? Does anybody want to argue for continuing to maintain C++03 
compatibility for future OpenEXR releases, or is it finally time (six years 
after the C++ standard and 2+ years after VFXPlatform) to raise the floor to 
C++11?

        -- lg


> On Aug 9, 2017, at 11:38 PM, Werner Benger <wer...@cct.lsu.edu> wrote:
> 
> It should be noted that dynamic expressions are actually forbidden in C++17, 
> so OpenEXR does no longer compile with GCC 7.1 when std C++17 is enabled. The 
> highest C++ version that can be used to compile it is C++14, where it's still 
> just a warning, while in C++17 it's an error. It would be good to have 
> OpenEXR at least compilable in C++17.  Major C++ libraries such as QT are 
> using C++11 nowadays, so it seems pretty safe to go beyond C++03 for modern 
> applications, a lot of things are indeed much easier.
> 
>     Werner
> 
> 
> On 10.08.2017 00:20, Larry Gritz wrote:
>> In a test compile with gcc 7, I get lots of errors of the following ilk:
>> 
>> /home/travis/build/lgritz/openexr/IlmBase/Imath/ImathVec.h:228:34: warning: 
>> dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
>>      const Vec2 & normalizeExc () throw (IEX_NAMESPACE::MathExc);
>>                                   ^~~~~
>> 
>> I can disable this particular warning, of course, but it's worth noting that 
>> the OpenEXR code base is not C++11 compliant. But in addition to using some 
>> C++03 idioms that are deprecated in C++11, perhaps more importantly, the 
>> code is not taking advantage of new features such as move semantics, 
>> constexpr, nothrow, and others. For the Imath classes especially, using some 
>> of these may actually confer a performance benefit.
>> 
>> I feel kind of bad pointing this out while not really having the time at the 
>> moment to code up and submit an actual patch myself, but I thought I'd at 
>> least open the topic and see where the community stands on the issue of how 
>> and when to upgrade to C++11 and if it's important for modern OpenEXR to 
>> continue to support C++03. For point of reference, the VFX Reference 
>> Platform [http://www.vfxplatform.com/] dictated C++11 for 2016 and 2017, and 
>> will be C++14 for 2018.
>> 
>>      -- lg
>> 
>> --
>> Larry Gritz
>> l...@larrygritz.com
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Openexr-devel mailing list
>> Openexr-devel@nongnu.org
>> https://lists.nongnu.org/mailman/listinfo/openexr-devel
> 
> -- 
> ___________________________________________________________________________
> Dr. Werner Benger                Visualization Research
> Center for Computation & Technology at Louisiana State University (CCT/LSU)
> 2019  Digital Media Center, Baton Rouge, Louisiana 70803
> Tel.: +1 225 578 4809                        Fax.: +1 225 578-5362
> 
> 
> _______________________________________________
> Openexr-devel mailing list
> Openexr-devel@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/openexr-devel

--
Larry Gritz
l...@larrygritz.com




_______________________________________________
Openexr-devel mailing list
Openexr-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/openexr-devel

Reply via email to