On Sunday, 20 March 2016 at 00:03:16 UTC, Nicholas Wilson wrote:
On Saturday, 19 March 2016 at 19:37:38 UTC, Alex Parrill wrote:
On Saturday, 19 March 2016 at 12:57:18 UTC, Nicholas Wilson wrote:
On Saturday, 19 March 2016 at 01:12:08 UTC, Alex Parrill wrote:

Should be doable using appropriate version blocks.


The problem is that I'd have to define my own structs (Xlib Display, Xlib Window, etc), which will be incompatible with the ones defined in any bindings to those libraries.

You don't. Code in undefined versions need only be syntactically valid not semantically valid. i.e. the types in versions not compiled in need not
be declared nor defined.

version(none)
{
    xcb_connection_t* con;
}
 will compile fine.

Yes, I know. The issue is, when compiling with the version, where does xcb_connection_t come from? If I declare it myself, as `struct xcb_connection_t;` in the version block, then that type will be different than the xcb_connection_t declared in the XCB bindings that the developer is likely using, and thus they will be incompatible. If I import a xcb_connection_t from some bindings, it ties d-vulkan to those bindings, which I'd rather not do.

Reply via email to