30 this->user_add(
data_);
35 other.data_ =
nullptr;
40 this->user_remove(
data_);
49 this->user_remove(
data_);
51 this->user_add(
data_);
61 this->user_remove(
data_);
63 other.data_ =
nullptr;
93 return data_ !=
nullptr;
115 this->user_remove(
data_);
121 return data_ !=
nullptr;
131 return a.data_ ==
b.data_;
136 stream << value.data_;
141 static void user_add(
T *
data)
143 if (
data !=
nullptr) {
148 static void user_remove(
T *
data)
150 if (
data !=
nullptr) {
const T & operator*() const
UserCounter(const UserCounter &other)
const T * operator->() const
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)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
unsigned __int64 uint64_t