Function definition in multiple modules
simendsjo
simendsjo at gmail.com
Thu Mar 29 03:02:11 PDT 2012
On Thu, 29 Mar 2012 11:31:57 +0200, Martin Drasar <drasar at ics.muni.cz>
wrote:
> On 29.3.2012 11:16, simendsjo wrote:
>>
>> D has interface files, .di. These can be automatically generated by the
>> compiler using the -H switch.
>>
(snip)
>
> I would like to split the X class definition into two files. One file
> would implement methods of interface IA and another of interface IB. So
> it would be like this:
>
> myfunkyclassIA.d:
> class X : IA, IB
> {
> void a()
> {
> }
> }
>
> myfunkyclassIB.d:
> void b(X x)
> {
> }
>
> Except using UFCS in this case does not work...
>
> Martin
Your looking for partial classes? D doesn't have this as far as I know.
"alias this" should work for more than one value in the future, and then
(I think) you should be able to do something like this:
class XIB : IB {}
class XIA : IA {}
class X : IA, IB {
XIA xia;
XIB xib;
alias xia this;
alias xib this;
}
But you can also solve it with mixin templates:
mixin template XIA {
// all IA methods
}
mixin template XIB {
// all IB methods
}
class X : IA, IB {
mixin XIA!();
mixin XIB!();
}
More information about the Digitalmars-d-learn
mailing list