如何正确使用opCall?
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()
存在时,上面的代码不起作用。我必须摆脱构造函数吗?
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
I can't find enough information on opCall
in TDPL or the website.
I need both the this()
and opCall()
, but, when the this()
is present, the above code doesn't work. Do I have to get rid of the constructor?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
上面的代码应该可以工作,但由于错误#6036而无法工作。
The above code should work, but doesn't due to bug #6036.