MySQL++

Ticket Change Details
Login
Overview

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

  1. icomment:
    > 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. login: "tangent"
  3. mimetype: "text/x-fossil-plain"
  4. priority changed to: "Immediate"
  5. resolution changed to: "Open"
  6. subsystem changed to: "Library"