Hacker News new | ask | show | jobs
by mhh__ 2439 days ago
Assuming I formatted it right, I made your example shorter

  import std;

  template Math(char Op) {
     auto eval(T, U)(T l, U r) {
        static foreach(x; "+-*/") {            
         if (Op == x)
          mixin("return l ", x, " r;");        
        }        
    }
  }

  static immutable result = Math!('+').eval(1, 2) + Math!('*').eval(3.0, 3.0);

  void main() {
    writeln(result);
  }
1 comments

Yeah, that works too. I was trying not to get too crazy I guess. And also just show all the various levels of "static".