我正在观看来自 //build 的视频,其中 Herb Sutter 使用代码片段展示了显式转换关键字的好处:
template< /* ... */ > class unique_ptr {
public:
// ...
explicit operator bool() const { return get() != nullptr; }
他说用那个关键字,我们可以防止它编译:
use(ptr * 42); // oops, meant *(ptr) * 42
实在看不懂,showcase是怎么编译的?编译器如何进行转换?到什么类型?