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 
[] dictated C++11 for 2016 and 2017, and will be 
C++14 for 2018.

        -- lg

Larry Gritz

Openexr-devel mailing list

Reply via email to