On 11/14/2017 3:09 PM, H. S. Teoh wrote:
I've been bitten before by things like this:

        void myfunc(char ch) { ... }
        void myfunc(int i) { ... }

        char c;
        int i;

        myfunc(c);      // calls first overload
        myfunc('a');    // calls second overload (WAT)
        myfunc(i);      // calls second overload
        myfunc(1);      // calls second overload

I just tried:

  import core.stdc.stdio;
  void foo(char c) { printf("char\n"); }
  void foo(int c) { printf("int\n"); }
  void main() {
    enum int e = 1;
    foo(e);
    foo(1);
    foo('c');
  }

and it prints:

  int
  int
  char

I cannot reproduce your or Nick's error.

Reply via email to