[Github-comments] [geany/geany] Plugins: Needless forward declaration of geany_load_module() (#1215)

elextr notifications at xxxxx
Tue Sep 6 14:13:36 UTC 2016


>  If really the author meant to add noexcept, she must then be aware of the problem and properly handle exceptions anyway, as IIUC all this is merely a runtime check that leads to program abortion.

Its sadly easy to allow exceptions, they are slippery little things:

```c++
int f() try {
    the code;
} catch(...){
    now I must not allow anything to throw here;
    careful of IO, constructing objects, operators;
    sheesh, not much you CAN do;
    better just terminate, or return -1;
}
```

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.  

> So authors of C++ plugins are forced to consider the issue. But that breaks C++ API.

Though I wouldn't expect too many C++ plugins for the new API, yet, now is the best chance.

> Though, I still wonder how this can change the ABI, especially in C linkage where there can't be no name mangling anyway.

I wouldn't think it would change the ABI, I would have expected the stack frame to have a flag saying this function is `noexcept` so the unwinder can see it and terminate.  So its internal to the function.  But it is implementation dependent, so who knows.


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/1215#issuecomment-244962916
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.geany.org/pipermail/github-comments/attachments/20160906/2b9f951d/attachment.html>


More information about the Github-comments mailing list