openexr-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Openexr-devel] C++11, 'throw', etc.


From: Larry Gritz
Subject: Re: [Openexr-devel] C++11, 'throw', etc.
Date: Thu, 10 Aug 2017 11:40:29 -0700

Any vendors that have bought into VFX Platform (Autodesk, Foundry, SESI) should in theory have been on C++11 since last year (and should be on board for C++14 for any products coming in 2018).

We're only talking about moving forward, so a stray downstream product stuck on C++03 can keep using OpenEXR <= 2.2.

I'll give it a couple days to see if there are objections before I do any of the actual work. But it will be cleaner and easier if we can just assume C++11 as a minimum.

-- lg


On Aug 10, 2017, at 11:12 AM, Piotr Stanczyk <address@hidden> wrote:

Are there any vendors for whom this would cause an issue? Else, I would vote for moving things forward 


On 10 August 2017 at 10:18, Larry Gritz <address@hidden> wrote:
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 <address@hidden> 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
address@hidden





_______________________________________________
Openexr-devel mailing list
address@hidden
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
address@hidden
https://lists.nongnu.org/mailman/listinfo/openexr-devel

--
Larry Gritz





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



--
Larry Gritz





reply via email to

[Prev in Thread] Current Thread [Next in Thread]