On Sun, 19 Dec 2010 03:37:37 -0600
Christopher Nicholson-Sauls <ibisbase...@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

Reply via email to