Thread overview
Overloading issue with enum in dmd 1.006
Feb 20, 2007
renoX
Feb 27, 2007
Thomas Kuehne
Mar 03, 2007
renoX
February 20, 2007
Tested in dmd 1.006 on Linux, the two toString definitions conflicts when they are in main, not when they are out of the main function.

import std.stdio;
int main(char[][] args)
{	
	enum Foo { A , B };
	enum Foo2 { C , D };
	
	char[] toString(Foo x)
	{
		return "1";
	}
	char[] toString(Foo2 x)
	{
		return "2";
	}	

    Foo s = Foo.A;
    writefln("s is %s, with name %s\n", s, toString(s));
	
    Foo2 o = Foo2.C;
    writefln("o is %s, with name %s\n", o, toString(o));
    return 0;
}

regards,
renoX
February 27, 2007
renoX schrieb am 2007-02-20:
> Tested in dmd 1.006 on Linux, the two toString definitions conflicts when they are in main, not when they are out of the main function.
>
> import std.stdio;
> int main(char[][] args)
> {
> 	enum Foo { A , B };
> 	enum Foo2 { C , D };
> 
> 	char[] toString(Foo x)
> 	{
> 		return "1";
> 	}
> 	char[] toString(Foo2 x)
> 	{
> 		return "2";
> 	}

<snip>

http://www.digitalmars.com/d/function.html
> Unlike module level declarations, declarations within function scope are processed in order.

Thus no overloading for nested functions.

Thomas


March 03, 2007
Thomas Kuehne a écrit :
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> renoX schrieb am 2007-02-20:
>> Tested in dmd 1.006 on Linux, the two toString definitions conflicts when they are in main, not when they are out of the main function.
>>
>> import std.stdio;
>> int main(char[][] args)
>> {	
>> 	enum Foo { A , B };
>> 	enum Foo2 { C , D };
>> 	
>> 	char[] toString(Foo x)
>> 	{
>> 		return "1";
>> 	}
>> 	char[] toString(Foo2 x)
>> 	{
>> 		return "2";
>> 	}	
> 
> <snip>
> 
> http://www.digitalmars.com/d/function.html
>> Unlike module level declarations, declarations within function scope are
>> processed in order.
> 
> Thus no overloading for nested functions.
> 
> Thomas

OK, thanks for your answer, this way I'll avoid opening a bogus fault report.

renoX
> 
> 
> -----BEGIN PGP SIGNATURE-----
> 
> iD8DBQFF5JQELK5blCcjpWoRAuAYAKCe657u4RV2QFzRiGnEle01XRlkAwCfWStE
> 4vwsRjflR46EqJ1j18VhDwI=
> =TkIY
> -----END PGP SIGNATURE-----