如何正确使用opCall?

时间:2011-12-09 04:44:43

标签: operator-overloading d

struct Foo{

  int _a;

  this(int a){ _a = a; }

  int opCall(int b){ return b * b; }
}

Foo f;
int rt = f(33); //Error: cannot implicitly convert expression ((Foo __ctmp1294 = 0;
                //, __ctmp1294).this(33)) of type Foo to int

我在TDPL或网站上的opCall找不到足够的信息。

我需要this()opCall(),但是,当this()存在时,上述代码不起作用。我是否必须摆脱构造函数?

1 个答案:

答案 0 :(得分:5)

上述代码应该有效,但不是由于#6036错误。