pointers, functions, and uniform call syntax
Artur Skawina
art.08.09 at gmail.com
Thu Sep 6 05:00:17 PDT 2012
On 09/06/12 13:34, Era Scarecrow wrote:
> Alright let's go the opposite direction. Give me an example in which passing a variable (by reference to a function) would EVER require it to check the address to see if it was null. Class/allocated objects should fail before the function gets control. ie:
>
> void func(ref int i);
>
> class X {
> int i;
> }
>
> X x;
> int* i;
> int[10] a;
>
> func(x.i); /*should fail while dereferencing x to access i,
> so never gets to func*/
> func(*i); //does this count as a lvalue? Probably not,
> func(a[0]);//none of these three should compile with that in mind
> func(0);
>
> Being named variables, and likely non-classes you are then left with mostly local variables, or arrays, or some type of pointer indirection issue. But ever case I come up with says it would fail before the function was called.
Both '*i' and 'a[0]' count. (Even '0' could be made to work as a 'const ref'
arg, but i'm not sure if that would be a good idea)
artur
More information about the Digitalmars-d
mailing list