mirror of
https://github.com/matrix-construct/construct
synced 2024-09-27 11:18:51 +02:00
ircd::util: Allow variable increment for scope_count.
This commit is contained in:
parent
fd1db1b208
commit
f34cc52043
1 changed files with 7 additions and 4 deletions
|
@ -24,18 +24,21 @@ template<class T>
|
|||
struct ircd::util::scope_count
|
||||
{
|
||||
T *count {nullptr};
|
||||
T inc {1};
|
||||
|
||||
scope_count(T &count);
|
||||
scope_count(T &count, const T & = 1);
|
||||
scope_count(const scope_count &) = delete;
|
||||
scope_count(scope_count &&) noexcept = delete;
|
||||
~scope_count() noexcept;
|
||||
};
|
||||
|
||||
template<class T>
|
||||
ircd::util::scope_count<T>::scope_count(T &count)
|
||||
ircd::util::scope_count<T>::scope_count(T &count,
|
||||
const T &inc)
|
||||
:count{&count}
|
||||
,inc{inc}
|
||||
{
|
||||
++count;
|
||||
count += inc;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
|
@ -43,5 +46,5 @@ ircd::util::scope_count<T>::~scope_count()
|
|||
noexcept
|
||||
{
|
||||
assert(count);
|
||||
--(*count);
|
||||
(*count) -= inc;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue