Article: D Exceptions and C Callbacks

Mike Parker aldacron at gmail.com
Wed Aug 7 03:08:44 PDT 2013


On Wednesday, 7 August 2013 at 07:10:21 UTC, Johannes Pfau wrote:
> Am Wed, 07 Aug 2013 03:33:28 +0200
> schrieb "Mike Parker" <aldacron at gmail.com>:
>
>> 
>> > Maybe modifying glfwSetWindowCloseCallback and similar 
>> > functions to only accept nothrow functions is a good idea?
>> 
>> I'm not sure what you mean. That's a C function, which means 
>> it doesn't have any concept of D's nothrow. And, actually, the 
>> callbacks should be declared as nothrow anyway. Like:
>
> He meant declaring glfwSetWindowCloseCallback like this:
> alias extern(C) nothrow void function() callback;
> extern(C) void glfwSetWindowCloseCallback(callback cb);
>
> http://dpaste.dzfl.pl/0f23146f
> There's no difference in the generated code, but this way the 
> compiler
> will complain if you pass a non-nothrow function to
> glfwSetWindowCloseCallback.

Yeah, I see. I misunderstood. I agree that the callbacks should 
be declared as nothrow. In Derelict, all the C function pointers 
are declared as such. Apparently, I overlooked adding it to the 
callbacks.


More information about the Digitalmars-d-announce mailing list