12 template <
typename ptr_type>
15 using value_type =
typename std::remove_pointer <ptr_type>::type;
39 template <
typename OtherType>
52 template <
typename OtherType>
78 template <
typename OtherType>
86 if (
value != item.value) {
97 template <
typename OtherType>
99 if (
value != item.value) {
104 item.value =
nullptr;
134 inline operator bool()
const {
135 return (
value !=
nullptr);
Smart containers to help manage reference counting the MusicThingies.
Definition: retainer.h:13
Retainer(const this_type &item)
Copy constructor.
Definition: retainer.h:32
value_type * get() const
Get the pointer itself.
Definition: retainer.h:128
this_type & operator=(value_type *item)
Direct assignment of new pointer.
Definition: retainer.h:58
~Retainer()
On destruction, release any contained pointer.
Definition: retainer.h:110
value_type * value
Definition: retainer.h:19
Retainer(this_type &&item)
Move construction.
Definition: retainer.h:47
Retainer()
Default constructor.
Definition: retainer.h:22
value_type & operator*() const
Dereference contained pointer via operator *.
Definition: retainer.h:123
Retainer(const Retainer< OtherType > &item)
Copy construct from a different retained type.
Definition: retainer.h:40
typename std::remove_pointer< ptr_type >::type value_type
Definition: retainer.h:15
Retainer(value_type *item)
Direct construction of new item via pointer.
Definition: retainer.h:25
value_type * operator->() const
Allow arrow use of contained pointer.
Definition: retainer.h:117
Retainer(Retainer< OtherType > &&item)
Move construction from a different retained type.
Definition: retainer.h:53
uint32_t value
Definition: audiooutput.cpp:68