Avatar
omochimetaru 8/10/2018 4:23 AM
tryIncrement は 関数じゃなくて メソッドで template <typename RefCountBits> class RefCounts { std::atomic<RefCountBits> refCounts; ... } (edited)
4:24 AM
参照型のオブジェクトはこの RefCounts をフィールドとして持っているので
4:24 AM
このRefCountsを保持しているオブジェクト自体がスレッド間共有されています (edited)
4:25 AM
oldbitsとnewbitsの型は RefCountBits だけどこれは RefCounts テンプレートクラスの型パラメーターで
4:25 AM
厳密にはポインタになったりもするんですけど、値だと思えば良いです