我想写一些对Synchronized<T>
对象进行操作的实用函数。我可以写两个版本,一个是常量,一个是非常量,但这似乎很愚蠢。或者,我可以只为const编写一个版本。我不确定这样做是否有任何缺点,因为看起来你仍然可以通过Synchronized::wlock
方法修改“锁定”对象。
folly::Synchronized允许在const Synchronized
和非常量Synchronized
对象-- link上调用wlock
(即在写模式下独占锁定)。
但是它们返回不同的输出类型。LockedPtr
和ConstWLockedPtr
有什么区别吗?我特别感兴趣的是功能上的差异&特别是ConstWLockedPtr
在功能上的不足。
1条答案
按热度按时间pbgvytdp1#
wlock
* 在const folly::Synchronized<T>&
上使用时无法编译 *。所以你必须有一个可变的引用来调用wlock
。对于rlock
,可以使用mutable或const;它将隐式地转换为const
。