44 this->user_add(
data_);
49 other.data_ =
nullptr;
54 this->user_remove(
data_);
63 this->user_remove(
data_);
65 this->user_add(
data_);
75 this->user_remove(
data_);
77 other.data_ =
nullptr;
95 return data_ !=
nullptr;
117 this->user_remove(
data_);
123 return data_ !=
nullptr;
133 return a.data_ == b.data_;
138 stream << value.data_;
143 static void user_add(
T *
data)
145 if (
data !=
nullptr) {
150 static void user_remove(
T *
data)
152 if (
data !=
nullptr) {
UserCounter(const UserCounter &other)
friend bool operator==(const UserCounter &a, const UserCounter &b)
UserCounter & operator=(const UserCounter &other)
UserCounter(UserCounter &&other)
UserCounter & operator=(UserCounter &&other)
friend std::ostream & operator<<(std::ostream &stream, const UserCounter &value)
uint64_t get_default_hash(const T &v)
unsigned __int64 uint64_t