在很多应用中,C++的operator重载,主要针对+ 、-、 ++ 、=、==等操作符进行重载,但还有些重载颇为诡异,比如这篇博客中记载的。下面给出一段代码,main.cpp
你能想象么?if(error)居然调用的是 operator unspecified_bool_type(),更诡异的是,unspecified_bool_type只是一个类型定义,这只是告诉我们,type其实也是个操作符呢?
这段代码是从boost::system::error_code衍生出来的。
在很多应用中,C++的operator重载,主要针对+ 、-、 ++ 、=、==等操作符进行重载,但还有些重载颇为诡异,比如这篇博客中记载的。下面给出一段代码,main.cpp
你能想象么?if(error)居然调用的是 operator unspecified_bool_type(),更诡异的是,unspecified_bool_type只是一个类型定义,这只是告诉我们,type其实也是个操作符呢?
这段代码是从boost::system::error_code衍生出来的。