34 static_assert(std::numeric_limits<T_integral>::is_signed,
"Reference counter must be a signed integer");
45 operator T_integral
const ()
const {
return count_;}
47 T_integral
const set(T_integral
const a) { count_=
a;
return count_; }
48 T_integral
const inc(){
49 if (count_ >= 0) { count_ += 1; }
51 T_integral
const dec(){
52 if( count_ > 0) { count_ -= 1; }
55 if (count_ < 0) {count_ = 0;}
62 T_integral
const operator++(
int){T_integral ret(count_);
inc();
return ret;}
64 T_integral
const operator--(
int){T_integral ret(count_);
dec();
return ret;}
ref_counter(const ref_counter &a)
T_integral const operator++()
ref_counter & operator=(const ref_counter &a)
T_integral const operator++(int)
ref_counter(T_integral x=0)
T_integral const operator--()
T_integral const enable_count()
T_integral const disable_count()
T_integral const operator--(int)
ref_counter is a reference counter.