Ticket Change Details

Artifact ID: 284aa4eb513b0cb72b269fcaf487365fc1a3f0871fc05e0f4df3c37c790c7e1f
Ticket: 8395aa91d1231e072ebe93d59f159b2c0a0a8dcc
C++17 does not allow dynamic exception specifications
User & Date: tangent 2018-05-02 14:45:58

  1. Change icomment to:

    > Some conditional compilation might be in order here

    The trick is how to do that portably.

    The wrong way is to simply test for a particular GCC version, since that doesn't test whether C++17 compatibility is enabled on any given build. It also wouldn't get you Clang or VC++ compatibility.

    The right way is to create a set of Autoconf and C++ macro tests that end up defining macros like MYSQLPP_HAVE_CPP17, which in turn you could ifdef against to remove these throwspecs.

    I can't just blindly remove the throwspecs, since I assume they affect the ABI of the built library. MySQL++ 3's ABI has been stable for many years now, so I don't want to break it now.

    Patches will be thoughtfully considered if you have any idea of how to do this properly. Otherwise, I suggest that you just locally hack your copy of the library to remove the throwspecs.

  2. Change login to "tangent"
  3. Change mimetype to "text/x-fossil-plain"
  4. Change priority to "Immediate"
  5. Change resolution to "Open"
  6. Change subsystem to "Library"