On Sunday, 13 January 2013 at 23:21:20 UTC, Andrey wrote:
I just want very much avoid renaming function,it's principle
for me.
So I would like to know is my sample right or no.
I think that the main overall principle here is that is it
impossible to have two functions which differ only by static
attribute. I even do not imagine the use case of this.
Well, here is the most natural way to achieve similar effect, I
suppose:
struct MyStruct {
struct Static {
static void myfun() {
writeln("static myfun");
}
}
void myfun() {
writeln("myfun");
}
static Static opCall() {
return Static();
}
}
MyStruct obj;
obj.myfun(); //dynamic;
MyStruct().myfun(); //static;
I do not agree with you, static attribute is not a small detail.
this reference is the same argument, like all the others. And
despite the fact that
function signatures are the same, the actual list of arguments
are different.