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