代码
struct test
{
private real value;
this(real value)
{
this.value = value;
}
bool opUnary(string op)() if (op == "!")
{
return !value;
}
}
void main()
{
test a = 123.12345;
bool b = !a;
}
编译错误
prog.d(19): Error: expression a of type test does not have a boolean value
也在dmd 2.053,2.054
上测试我的代码出了什么问题?
答案 0 :(得分:3)
您不能在D中重载!
运算符 - 请参阅http://www.d-programming-language.org/operatoroverloading.html#Unary以获取可重载的一元运算符列表。如果不知道你在做什么,很难建议一个解决方案,可能值得看看alias this
- http://www.d-programming-language.org/class.html#AliasThis。