这段代码本不应该编译通过,但为什么它却通过了? 在if表达式中,上下文的原则是什么?
class B {
public:
B() {}
explicit operator bool () {}
};
int main (){
B Bp;
//bool check = Bp // error
if (Bp){ //o.k
return 1;
}
return 0;
}
谢谢