Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
July 31, 2014 Split class declaration and definition | ||||
---|---|---|---|---|
| ||||
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 } |
July 31, 2014 Re: Split class declaration and definition | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kozzi11 | 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)
|
July 31, 2014 Re: Split class declaration and definition | ||||
---|---|---|---|---|
| ||||
Posted in reply to FreeSlave | 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); |
July 31, 2014 Re: Split class declaration and definition | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kozzi11 | 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
|
July 31, 2014 Re: Split class declaration and definition | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kozzi11 | 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";
}
|
July 31, 2014 Re: Split class declaration and definition | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kagamin | V Thu, 31 Jul 2014 13:26:38 +0000 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. |
Copyright © 1999-2021 by the D Language Foundation