digitalmars.D - What's wrong with opCall ?
- Dmitry Olshansky (28/28) Nov 28 2010 Hello,
- bearophile (6/7) Nov 28 2010 As far as I know opCall is currently broken. See:
- kenji hara (4/11) Jan 14 2011 Today, I also encountered this bug. Non-static function should be
Hello,
Considering my effort on rework of the range API for upcoming
std.datetime (It's coming, Jonathan, but far slower then I thought).
I was in determined to see where can I get with function-like objects,
but it seems I'm missing something.
The following program do not compile:
struct S{
ubyte _d;
this(ubyte d){
_d = d;
}
int opCall(string a){
return _d;
}
}
void main(){
S s = S(22);
assert(s.opCall("A") == 22);
// s("A");//uncoment to get compile error
}
bug.d(14): Error: constructor bug.S.this (ubyte d) is not callable using
argument types
bug.d(14): Error: cannot implicitly convert expression ("A") of type
string to ubyte
So it appears that compiler views it as a call to constructor instead.
What's the problem?
--
Dmitry Olshansky
Nov 28 2010
Dmitry Olshansky:What's the problem?As far as I know opCall is currently broken. See: http://d.puremagic.com/issues/show_bug.cgi?id=4053 http://d.puremagic.com/issues/show_bug.cgi?id=4253 Bye, bearophile
Nov 28 2010
Today, I also encountered this bug. Non-static function should be preferred to static function over the instance. Kenji 2010/11/29 bearophile <bearophileHUGS lycos.com>:Dmitry Olshansky:What's the problem?As far as I know opCall is currently broken. See: http://d.puremagic.com/issues/show_bug.cgi?id=4053 http://d.puremagic.com/issues/show_bug.cgi?id=4253 Bye, bearophile
Jan 14 2011








kenji hara <k.hara.pg gmail.com>