Re: Split class declaration and definition
On Thursday, 31 July 2014 at 11:34:38 UTC, Kozzi11 wrote: Is possible to somehow split class declaration and definition. I mean something like this: class C { void hello(); // just prototype } class C { void hello() { //actual code } } or something like this void C.hello() { //actual code } dmd -c -o- -H yourmodule.d will create .di file (i.e. interface)
Re: Split class declaration and definition
On Thursday, 31 July 2014 at 11:41:07 UTC, FreeSlave wrote: On Thursday, 31 July 2014 at 11:34:38 UTC, Kozzi11 wrote: Is possible to somehow split class declaration and definition. I mean something like this: class C { void hello(); // just prototype } class C { void hello() { //actual code } } or something like this void C.hello() { //actual code } dmd -c -o- -H yourmodule.d will create .di file (i.e. interface) I know that, but this is not exactly what I mean. I mean something like this: http://wiki.dlang.org/DIP47 . I will have something like: module m; @someUda class C { void someFun(); } @someUda class D { void anotherFun(); } mixin(generateFunDefForClassesWithSomeUda!m);
Re: Split class declaration and definition
Kozzi11: Is possible to somehow split class declaration and definition. I mean something like this: class C { void hello(); // just prototype } class C { void hello() { //actual code } } or something like this void C.hello() { //actual code } I think this is currently not possible. (And I don't like it in D). Bye, bearophile
Re: Split class declaration and definition
On Thursday, 31 July 2014 at 12:02:22 UTC, Kozzi11 wrote: module m; @someUda class C { void someFun(); } @someUda class D { void anotherFun(); } mixin(generateFunDefForClassesWithSomeUda!m); This is usually done by generating functions in the classes directly. class C { mixin Generate!C; }
Re: Split class declaration and definition
V Thu, 31 Jul 2014 13:26:38 + Kagamin via Digitalmars-d-learn digitalmars-d-learn@puremagic.com napsáno: On Thursday, 31 July 2014 at 12:02:22 UTC, Kozzi11 wrote: module m; @someUda class C { void someFun(); } @someUda class D { void anotherFun(); } mixin(generateFunDefForClassesWithSomeUda!m); This is usually done by generating functions in the classes directly. class C { mixin Generate!C; } Yes this is how I do it now.