Avidemux Forum

Avidemux => Unix-Like (Linux/Bsd/...) => Topic started by: hobbes1069 on February 04, 2021, 03:22:54 PM

Title: C++17 errors
Post by: hobbes1069 on February 04, 2021, 03:22:54 PM
Now that newer version of gcc default to c++17 avidemux fails to build with a bunch of errors like:

/builddir/build/BUILD/avidemux_2.7.6/avidemux_core/ADM_coreUtils/src/Source/JSONNode.h: At global scope:
/builddir/build/BUILD/avidemux_2.7.6/avidemux_core/ADM_coreUtils/src/Source/JSONDefs/GNU_C.h:58:28: error: ISO C++17 does not allow dynamic exception specifications
   58 |     #define json_throws(x) throw(x)
      |                            ^~~~~
/builddir/build/BUILD/avidemux_2.7.6/avidemux_core/ADM_coreUtils/src/Source/JSONNode.h:179:37: note: in expansion of macro 'json_throws'
  179 |     JSONNode & at(json_index_t pos) json_throws(std::out_of_range);
      |                                     ^~~~~~~~~~~
/builddir/build/BUILD/avidemux_2.7.6/avidemux_core/ADM_coreUtils/src/Source/JSONDefs/GNU_C.h:58:28: error: ISO C++17 does not allow dynamic exception specifications
   58 |     #define json_throws(x) throw(x)
      |                            ^~~~~
/builddir/build/BUILD/avidemux_2.7.6/avidemux_core/ADM_coreUtils/src/Source/JSONNode.h:180:49: note: in expansion of macro 'json_throws'
  180 |     const JSONNode & at(json_index_t pos) const json_throws(std::out_of_range);
      |                                                 ^~~~~~~~~~~
/builddir/build/BUILD/avidemux_2.7.6/avidemux_core/ADM_coreUtils/src/Source/JSONDefs/GNU_C.h:58:28: error: ISO C++17 does not allow dynamic exception specifications
   58 |     #define json_throws(x) throw(x)
      |                            ^~~~~
/builddir/build/BUILD/avidemux_2.7.6/avidemux_core/ADM_coreUtils/src/Source/JSONNode.h:185:47: note: in expansion of macro 'json_throws'
  185 |     JSONNode & at(const json_string & name_t) json_throws(std::out_of_range);
      |                                               ^~~~~~~~~~~
/builddir/build/BUILD/avidemux_2.7.6/avidemux_core/ADM_coreUtils/src/Source/JSONDefs/GNU_C.h:58:28: error: ISO C++17 does not allow dynamic exception specifications
   58 |     #define json_throws(x) throw(x)
      |                            ^~~~~
/builddir/build/BUILD/avidemux_2.7.6/avidemux_core/ADM_coreUtils/src/Source/JSONNode.h:186:59: note: in expansion of macro 'json_throws'
  186 |     const JSONNode & at(const json_string & name_t) const json_throws(std::out_of_range);
      |                                                           ^~~~~~~~~~~
/builddir/build/BUILD/avidemux_2.7.6/avidemux_core/ADM_coreUtils/src/Source/JSONDefs/GNU_C.h:58:28: error: ISO C++17 does not allow dynamic exception specifications
   58 |     #define json_throws(x) throw(x)
      |                            ^~~~~
/builddir/build/BUILD/avidemux_2.7.6/avidemux_core/ADM_coreUtils/src/Source/JSONNode.h:188:61: note: in expansion of macro 'json_throws'
  188 |            JSONNode & at_nocase(const json_string & name_t) json_throws(std::out_of_range);
      |                                                             ^~~~~~~~~~~
/builddir/build/BUILD/avidemux_2.7.6/avidemux_core/ADM_coreUtils/src/Source/JSONDefs/GNU_C.h:58:28: error: ISO C++17 does not allow dynamic exception specifications
   58 |     #define json_throws(x) throw(x)
      |                            ^~~~~

I have forced the RPM Fusion package to use C++14 for now but would like to get it fixed.

Thanks,
Richard
Title: Re: C++17 errors
Post by: eumagga0x2a on February 04, 2021, 03:45:09 PM
Thanks, looking into it.
Title: Re: C++17 errors
Post by: eumagga0x2a on February 05, 2021, 12:03:20 AM
Should be fixed (https://github.com/mean00/avidemux2/commit/07074f2ca8cbd6e7bac7162d7a256f4b8f5e36f0) now, with a followup (https://github.com/mean00/avidemux2/commit/bf1cbfebdd0c56f1370c0a5ee5cbee291dd25d93) added to make friends with Apple clang which else seems to default to C++98.

BTW, 2.7.7 is expected soon, it may be worth waiting a few weeks for the release rather than adding patches.
Title: Re: C++17 errors
Post by: hobbes1069 on February 05, 2021, 01:50:45 AM
I can confirm that fixed it for me. Looking forward to 2.7.7.

Thanks,
Richard