www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Pointers to functions (!= "function pointers") should be disallowed

reply "Mehrdad" <wfunction hotmail.com> writes:
I think pointers to functions should be disallowed (and more 
indirections thereof):

	typeof(Object.toString)*  p;

They can never point anywhere reasonable other than null.
Jun 16 2012
parent reply Timon Gehr <timon.gehr gmx.ch> writes:
On 06/17/2012 02:55 AM, Mehrdad wrote:
 I think pointers to functions should be disallowed (and more
 indirections thereof):

 typeof(Object.toString)* p;
pointers to functions == function pointers. They are just alternate syntax.
 They can never point anywhere reasonable other than null.
void main(){ typeof(main)* ptr = &main; static assert(is(typeof(ptr)==void function())); assert(ptr !is null); }
Jun 16 2012
parent "Mehrdad" <wfunction hotmail.com> writes:
On Sunday, 17 June 2012 at 02:24:23 UTC, Timon Gehr wrote:
 On 06/17/2012 02:55 AM, Mehrdad wrote:
 I think pointers to functions should be disallowed (and more
 indirections thereof):

 typeof(Object.toString)* p;
pointers to functions == function pointers. They are just alternate syntax.
 They can never point anywhere reasonable other than null.
void main(){ typeof(main)* ptr = &main; static assert(is(typeof(ptr)==void function())); assert(ptr !is null); }
Ah what! I guess what confused me was that &Object.toString was a function, which made me think they were "unbound delegates", and hence we couldn't actually set them... thanks!
Jun 16 2012