The nice thing about the `noexcept` is it can catch exceptions from the `catch` clause too, so it would be good if it could be used.
Yeah, but my point is that it's not really a solution, as it'll abort Geany altogether, not just the plugin. So a well-behaved plugin should manage it anyway. Maybe do: ```C++ extern "C" G_MODULE_EXPORT void geany_load_module (GeanyPlugin *plugin) { try { plugin->info->name = "great plugin"; plugin->info->description = "saves the world"; plugin->info->version = "42"; plugin->info->author = "Me";
plugin->funcs->init = great_plugin_init; plugin->funcs->cleanup = great_plugin_cleanup;
GEANY_PLUGIN_REGISTER (plugin, 225); } catch(...) { // not much to be done, and mustn't throw exceptions g_critical("My great plugin failed to register itself. Maybe it's not so great after all..."); } } ```
I wouldn't think it would change the ABI […]
It *has* not to change the ABI of the C decl, as the C caller won't know about it so won't do anything in either case. It still has to be able to call the function just the same.