@@ -25,8 +25,8 @@ template <auto Size,
2525class atomic_bitset {
2626 constexpr static std::size_t N = to_underlying(Size);
2727
28- using elem_t = atomic::atomic_type_t <StorageElem>;
29- constexpr static auto alignment = atomic::alignment_of<StorageElem>;
28+ using elem_t = :: atomic::atomic_type_t <StorageElem>;
29+ constexpr static auto alignment = :: atomic::alignment_of<StorageElem>;
3030
3131 static_assert (std::is_unsigned_v<elem_t >,
3232 " Storage element for atomic_bitset must be an unsigned type" );
@@ -39,7 +39,7 @@ class atomic_bitset {
3939
4040 constexpr static auto mask = bit_mask<elem_t , N - 1 >();
4141 auto salient_value (std::memory_order order) const -> elem_t {
42- return atomic::load (storage, order) & mask;
42+ return :: atomic::load (storage, order) & mask;
4343 }
4444
4545 [[nodiscard]] constexpr static auto value_from_string (std::string_view str,
@@ -114,7 +114,7 @@ class atomic_bitset {
114114 }
115115 auto store (bitset_t b,
116116 std::memory_order order = std::memory_order_seq_cst) {
117- atomic::store (storage, b.template to <elem_t >(), order);
117+ :: atomic::store (storage, b.template to<elem_t >(), order);
118118 }
119119
120120 constexpr static std::integral_constant<std::size_t , N> size{};
@@ -128,10 +128,10 @@ class atomic_bitset {
128128 std::memory_order order = std::memory_order_seq_cst) -> bitset_t {
129129 auto const pos = static_cast <std::size_t >(to_underlying (idx));
130130 if (value) {
131- return bitset_t {atomic::fetch_or (
131+ return bitset_t {:: atomic::fetch_or (
132132 storage, static_cast <elem_t >(bit << pos), order)};
133133 }
134- return bitset_t {atomic::fetch_and (
134+ return bitset_t {:: atomic::fetch_and (
135135 storage, static_cast <elem_t >(~(bit << pos)), order)};
136136 }
137137
@@ -141,9 +141,9 @@ class atomic_bitset {
141141 auto const m = to_underlying (msb);
142142 auto const shifted_value = bit_mask<elem_t >(m, l);
143143 if (value) {
144- return bitset_t {atomic::fetch_or (storage, shifted_value, order)};
144+ return bitset_t {:: atomic::fetch_or (storage, shifted_value, order)};
145145 }
146- return bitset_t {atomic::fetch_and (storage, ~shifted_value, order)};
146+ return bitset_t {:: atomic::fetch_and (storage, ~shifted_value, order)};
147147 }
148148
149149 auto set (lsb_t lsb, length_t len, bool value = true ,
@@ -155,15 +155,15 @@ class atomic_bitset {
155155
156156 auto set (std::memory_order order = std::memory_order_seq_cst) LIFETIMEBOUND
157157 -> atomic_bitset & {
158- atomic::store (storage, mask, order);
158+ :: atomic::store (storage, mask, order);
159159 return *this ;
160160 }
161161
162162 template <typename T>
163163 auto reset (T idx, std::memory_order order = std::memory_order_seq_cst)
164164 -> bitset_t {
165165 auto const pos = static_cast <std::size_t >(to_underlying (idx));
166- return bitset_t {atomic::fetch_and (
166+ return bitset_t {:: atomic::fetch_and (
167167 storage, static_cast <elem_t >(~(bit << pos)), order)};
168168 }
169169
@@ -173,7 +173,7 @@ class atomic_bitset {
173173 auto const l = to_underlying (lsb);
174174 auto const m = to_underlying (msb);
175175 auto const shifted_value = bit_mask<elem_t >(m, l);
176- return bitset_t {atomic::fetch_and (storage, ~shifted_value, order)};
176+ return bitset_t {:: atomic::fetch_and (storage, ~shifted_value, order)};
177177 }
178178
179179 auto reset (lsb_t lsb, length_t len,
@@ -187,24 +187,24 @@ class atomic_bitset {
187187 auto
188188 reset (std::memory_order order = std::memory_order_seq_cst) LIFETIMEBOUND
189189 -> atomic_bitset & {
190- atomic::store (storage, elem_t {}, order);
190+ :: atomic::store (storage, elem_t {}, order);
191191 return *this ;
192192 }
193193
194194 template <typename T>
195195 auto flip (T idx, std::memory_order order = std::memory_order_seq_cst)
196196 -> bitset_t {
197197 auto const pos = static_cast <std::size_t >(to_underlying (idx));
198- return bitset_t {
199- atomic::fetch_xor ( storage, static_cast <elem_t >(bit << pos), order)};
198+ return bitset_t {:: atomic::fetch_xor (
199+ storage, static_cast <elem_t >(bit << pos), order)};
200200 }
201201
202202 auto flip (lsb_t lsb, msb_t msb,
203203 std::memory_order order = std::memory_order_seq_cst) -> bitset_t {
204204 auto const l = to_underlying (lsb);
205205 auto const m = to_underlying (msb);
206206 auto const shifted_value = bit_mask<elem_t >(m, l);
207- return bitset_t {atomic::fetch_xor (storage, shifted_value, order)};
207+ return bitset_t {:: atomic::fetch_xor (storage, shifted_value, order)};
208208 }
209209
210210 auto flip (lsb_t lsb, length_t len,
@@ -215,7 +215,7 @@ class atomic_bitset {
215215 }
216216
217217 auto flip (std::memory_order order = std::memory_order_seq_cst) -> bitset_t {
218- return bitset_t {atomic::fetch_xor (storage, mask, order)};
218+ return bitset_t {:: atomic::fetch_xor (storage, mask, order)};
219219 }
220220
221221 [[nodiscard]] auto
0 commit comments