逻辑非: operator!

逻辑非: 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};