Thread overview | ||||||
---|---|---|---|---|---|---|
|
May 24, 2004 D & Phobos | ||||
---|---|---|---|---|
| ||||
Hi folks, I saw the D language and it is just great. I'm planning to use it at some big projects and I started to port a very good GUI library (www.fox-toolkit.org) to D. This is done in a big percentage and now I'm working to make a simple fox dialog editor in D. I'm thinking later to make these freely available. When working with D, i saw some things for which I need some explanations: 1. Is it possible for a delegate to an object method do get the object from it? Like: void *getDelegateObject(void *delegate). For now I need to pass to some functions both the delegate variable to an object method and the object itself. 2. About the ~ operator, now to add a new element to an array I'm using: array.length=array.length+1; array[array.length-1]=obj; Can be a simpler method to do this? Because to add objects to arrays is a very common task (I know about the performance penalities of this method, but I'm talking about 3-4 addings, for which i don't want to complicate myself with other things). 3. For arrays, how the "sort" func works? It uses the cmp method, so i can implement cmd on my objects and they will get sorted in an array? 4. the void* type is different from other pointers? For example when I'm trying to do something like: char []s="Zero terminated string\0"; void *pv=cast(void*)s; //it works char *pc=cast(char*)s; //it didnt work Thank you, Razvan |
May 24, 2004 Re: D & Phobos | ||||
---|---|---|---|---|
| ||||
Posted in reply to Razvan | Razvan wrote: > Hi folks, Hi! Could you do us a favour and post to digitalmars.D instead of here? This newsgroup is deprecated. > I saw the D language and it is just great. I'm planning to use it at some big > projects and I started to port a very good GUI library (www.fox-toolkit.org) to > D. This is done in a big percentage Nice! > and now I'm working to make a simple fox > dialog editor in D. I'm thinking later to make these freely available. > When working with D, i saw some things for which I need some explanations: > > 1. Is it possible for a delegate to an object method do get the object from it? > Like: void *getDelegateObject(void *delegate). For now I need to pass to some > functions both the delegate variable to an object method and the object itself. Only if you're willing to cheat: union EvilDelegateCheat { delegate void(...) dlg; struct { void* object; // maybe I got these backwards void* function; } } I would avoid this if at all possible, though, for obvious reasons. > 2. About the ~ operator, now to add a new element to an array I'm using: > array.length=array.length+1; array[array.length-1]=obj; array ~= obj; // exactly what you want > 3. For arrays, how the "sort" func works? It uses the cmp method, so i can > implement cmd on my objects and they will get sorted in an array? opCmp, actually, and I think so. > 4. the void* type is different from other pointers? For example when I'm trying > to do something like: > char []s="Zero terminated string\0"; > void *pv=cast(void*)s; //it works > char *pc=cast(char*)s; //it didnt work That's odd. This will work: char* pc = &s[0]; -- andy |
May 25, 2004 Re: D & Phobos | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andy Friesen | Andy Friesen wrote: <snip> > Only if you're willing to cheat: > > union EvilDelegateCheat { > delegate void(...) dlg; > struct { > void* object; // maybe I got these backwards > void* function; > } > } <snip> Wouldn't this be implementation dependent? Stewart. -- My e-mail is valid but not my primary mailbox, aside from its being the unfortunate victim of intensive mail-bombing at the moment. Please keep replies on the 'group where everyone may benefit. |
May 25, 2004 Re: D & Phobos | ||||
---|---|---|---|---|
| ||||
Posted in reply to Stewart Gordon | Stewart Gordon wrote:
> Andy Friesen wrote:
>
> <snip>
>
>> Only if you're willing to cheat:
>>
>> union EvilDelegateCheat {
>> delegate void(...) dlg;
>> struct {
>> void* object; // maybe I got these backwards
>> void* function;
>> }
>> }
>
> <snip>
>
> Wouldn't this be implementation dependent?
Hence the 'evil' qualifier. :)
-- andy
|
Copyright © 1999-2021 by the D Language Foundation