D - [experts] address operator
- Manfred Nowak (25/25) Feb 19 2004 I am playing with a hashing function `f'.
- Sean Kelly (4/4) Feb 19 2004 Kind of a neat idea, but it would complicate C support. And I really
- Manfred Nowak (9/11) Feb 19 2004 I do not believe that. Because also the receiver of the result of the
I am playing with a hashing function `f'. `f' should be able to operate with many memory areas. But there seems to be no type safe way of getting the start of a memory area together with its length. Why does the adress operator `&' not yield a struct for example: struct MemoryArea{ void* start; uint length; } Because the type of the variable is known at compile time ;-) the length field should be easily beeing filled by `&'. Then: void f( MemoryArea a){ ... inspect a ... } ... int x; real r; ... f(&x); f(&r); would be much less errorprone than void f( void* ptr, uint length){ ... inspect ptr up to ptr+length-1 ...} ... int x; real r; ... f( &x, x.sizeof); f( &r, r.sizeof); So long.
Feb 19 2004
Kind of a neat idea, but it would complicate C support. And I really don't think you should be using raw memory pointers much in D anyway. How useful would this really be? Sean
Feb 19 2004
Sean Kelly wrote: [...]but it would complicate C support.I do not believe that. Because also the receiver of the result of the address operator is known at compile time the compiler can decide whether to let the oprator yield a naked address or a struct. [...]How useful would this really be?Because D is able to go down to the bare metal, it would be of interest to all of those who are going that deep. So long.
Feb 19 2004