On Friday, 18 January 2013 at 07:34:35 UTC, Jacob Carlborg wrote:

You cannot both have CTFE/inlining/templates and hide the source code. It's the same as in C++.

Yes I am aware of that limitation, nothing can be done except lose the flexibility of templates and so forth, or keep it and expose the source code.

For classes and structs, I have no idea how to leave out the
implementation details.

You can either use an interface or just not provide an implementation for the methods. Note that it's perfectly fine to have a method in D without an implementation even it's not abstract. This is to support the use case you have here and separate compilation.

I figure that's the best approach, but I am not sure how to not supply the implementation for a module, since in D there doesn't seem to be a separation of interface and implementation.

I guess you would need to list the fields on classes/structs, again that's just like C++.

I have not yet seen examples or documentation explaining how to separate interface and implementation from a class or struct. Are you sure this can be done?

--rt

Reply via email to