> 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.