It seems that it would be fairly straight forward to define some preprocessor macros that allow the exception specifications to be spelled out in the appropriate ways based on the what __cplusplus is set to.

Thus, we can continue to support users of ilmbase according to their own C++ language standard needs.

Even though the recent VFX Reference Platform specifications have been specifying C++11 for a while (and C++14 for 2018), there may still be facilities using third party applications dating to before that. And there would be use cases that are entirely independent of the VFX Reference Platform.

When updates to OpenEXR lead to files being written that cannot be read by older versions of OpenEXR, we would want to avoid making any unwarranted hindrances that would block downstream users from updating to the newer OpenEXR.

On 08/12/17 11:20, Nick Rasmussen wrote:

It seems reasonable to me as well. Removing the dynamic exception specifications would’t even break compatibility with older compilers.

-nick

On Thu, Aug 10, 2017 at 11:52 AM Piotr Stanczyk <piotr.stanc...@gmail.com <mailto:piotr.stanc...@gmail.com>> wrote:

    Sounds like a sensible plan to me.

    Anyone from ILM care to comment on this? Can you foresee any
    internal build issues?

    Piotr

    On Thu, Aug 10, 2017 at 11:40 AM Larry Gritz <l...@larrygritz.com
    <mailto:l...@larrygritz.com>> wrote:

        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
        <piotr.stanc...@gmail.com <mailto:piotr.stanc...@gmail.com>>
        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 <l...@larrygritz.com
        <mailto:l...@larrygritz.com>> 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
            <wer...@cct.lsu.edu <mailto: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 <mailto:l...@larrygritz.com>





            _______________________________________________
            Openexr-devel mailing list
            Openexr-devel@nongnu.org <mailto: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 <tel:%28225%29%20578-4809>
                                   Fax.: +1 225 578-5362
            <tel:%28225%29%20578-5362>


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

            --
            Larry Gritz
            l...@larrygritz.com <mailto:l...@larrygritz.com>





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



        --
        Larry Gritz
        l...@larrygritz.com <mailto:l...@larrygritz.com>




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



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

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

Reply via email to