define methods apart

spir denis.spir at gmail.com
Sun Dec 19 04:52:21 PST 2010


On Sun, 19 Dec 2010 03:37:37 -0600
Christopher Nicholson-Sauls <ibisbasenji at gmail.com> wrote:

> On 12/18/10 07:19, spir wrote:
> > Hello,
> > 
> > 
> > I cannot find a way to define methods (I mean "member functions) outside the main type-definition body:
> > 
> > struct X {}
> > void X.say () {writeln("I say!");}
> > ==>
> > Element.d(85): semicolon expected, not '.'
> > 
> > Do I overlook anything, or is this simply impossible? In the latter case, what is the problem?
> > (In many languages, not only dynamic ones, method are or at least can be defined apart.)
> > 
> > 
> > Denis
> > -- -- -- -- -- -- --
> > vit esse estrany ☣
> > 
> > spir.wikidot.com
> > 
> 
> As bearophile says, it just isn't the "D way" to do things.
> 
> But, if you absolutely must (or just want to, for "playing" sakes) there
> are ways of faking it using opDispatch.  Here's one I just tossed
> together and tested (DMD 2.050) right now.
> 
> [code snipped]
>
> Generally speaking, though, I'm not sure what the real value would be in
> doing this in D.  Did you have a particular use case in mind, or was it
> just idle exploration?

Thank you very for this example use of opdispatch :-)
I'm still exploring the language (which I like very much, except for some given features *). Actually, I just wanted to know whether it's possible, because I'm used to this way and find it more practicle or readable in various cases. But it is not a problem.

Denis

(*) Some inherited from C/C++ (unhelpful syntax or semantics, mainly), some among the newest (too abstract or complicated, i'd say).
-- -- -- -- -- -- --
vit esse estrany ☣

spir.wikidot.com



More information about the Digitalmars-d-learn mailing list