运算符== 和 boost::d etail::atomic_count 中的显式构造函数

operator== and explicit constructor in boost::detail::atomic_count?

本文关键字:构造函数 count atomic boost etail 运算符      更新时间:2023-10-16

我发现boost::d etail::atomic_count没有运算符==()的声明和定义。

因此,如果我有以下条件: boost::detail::atomic_count i(0); if (i == 0) { // do something }

问题

  1. 由于 boost::d etail::atomic_count 有一个显式构造函数,因此 if 语句中的 0 似乎不会用作构造函数的参数?
  2. 没有定义和声明运算符==;编译器如何将i与零进行比较?

提前谢谢。

附言 代码在 gcc 4.6.2 和 boost 1.47 中编译并运行良好。在 Linux 上。

查看源代码会发现boost::detail::atomic_count有一个隐式转换为 long 的,用于相等比较。