[omniORB] OmniOrb and C++17 support

Daniel Krügler daniel.kruegler at gmail.com
Thu Mar 12 15:46:13 GMT 2020


Am Do., 12. März 2020 um 11:06 Uhr schrieb Duncan Grisby <duncan at grisby.org>:
>
> On Tue, 2020-03-10 at 16:39 +0100, Daniel Krügler via omniORB-list
> wrote:
> > Beginning with C++17, dynamic exception specifications have been
> > removed from the C++ language. This means it is not possible to use
> > OmniOrb in a program that us build using a C++17 compiler.
> >
> > Would it be possible to provide a 4.2.4 release version of OmniOrb
> > that can be compiled against C++17?
>
> The only place throw specifications are used is in a few functions
> related to options handling. They are not used in any IDL compiler
> output or in the main core CORBA code.
>
> The only reason I haven't removed them from the 4.2.x branch is that it
> could conceivably break binary compatibility with some compilers, where
> clients compiled against a version with the throw specifications may
> fail to call code compiled without them. None of the compilers I have
> tried actually generate different code, but I don't think there is
> anything to guarantee it.
>
> You can fairly easily remove the throw specifications. It probably
> makes sense to #ifdef the throw specifications away for C++17
> compilers. I'll look into that.

I would really appreciate this course of action. In particular, if you
make the existing dynamic exception specifications conditionally
existing based on C++17 I would argue that this could not cause an ABI
breakage.

Thanks for your help,

- Daniel



More information about the omniORB-list mailing list