Static function template

Daniel Kozak via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu May 7 03:43:26 PDT 2015


On Thursday, 7 May 2015 at 10:39:09 UTC, Daniel Kozák wrote:
>
> On Thu, 07 May 2015 10:33:44 +0000
> Vadim Lopatin via Digitalmars-d-learn
> <digitalmars-d-learn at puremagic.com> wrote:
>
>> struct S
>> {
>>      int i;
>> 
>>      auto foo2(T)(int j) {
>>          i=j;
>>      }
>> 
>>      static S foo(T)(int j) {
>>          S s;
>>          s.foo2!T(j);
>>          return s;
>>      }
>> }
>> 
>> void main()
>> {
>>      auto s = S.foo!bool(1);
>> }
>
> As I said, it is not bug. It is OK. There is no way how you can
> distinguish between static and non static methods or even field 
> in some
> cases.

e.g.:

import std.stdio;

struct S
{
	string foo = "Please select me?";
	string foo() { return ("No, select me?"); };
	static string foo() { return ("I am better than the otters 
:D?"); };
}

void main()
{
	auto s = S();
	writeln(s.foo);
}



More information about the Digitalmars-d-learn mailing list