This code compiles , as expected struct A { void func(string s : "foo")() { pragma(msg, "func for foo"); } void func(string s)() { pragma(msg, "func for others: " ~ s); } }
void main() { A a; a.func!"foo"(); a.func!"bar"(); } Why this doesn't compile? mixin template M() { void func(string s)() { pragma(msg, "func for others: " ~ s); } } struct A { mixin M; void func(string s : "foo")() { pragma(msg, "func for foo"); } } void main() { A a; a.func!"foo"(); a.func!"bar"(); // Error }