逻辑非: operator!
#
内置的 operator!
适用于在某些语境下, 将类型转换为 bool
.
如果用户自定义类型需要用于这些语境, 只需要提供类型转换 operator bool
即可, 而无需重载 operator!
:
1class Widget {
2 public:
3 // Widget -> bool 的转换函数
4 // -> true : value_ == 5
5 // -> false: value_ != 5
6 explicit operator bool() {
7 return value_ == 5;
8 }
9
10 private:
11 int value_;
12};