12#ifndef FRAMEWORK_OBSERVER_PTR_H
13#define FRAMEWORK_OBSERVER_PTR_H
30 template <typename W2, typename std::enable_if<std::is_convertible<W2*, element_type*>::value,
int>
::type = 1>
50 constexpr void swap(std::nullptr_t)
noexcept
55 constexpr std::add_lvalue_reference_t<element_type>
operator*()
const {
return *
get(); }
69 constexpr explicit operator bool() const noexcept {
return get() !=
nullptr; }
81template <
class W1,
class W2>
84 return p1.get() ==
p2.get();
87template <
class W1,
class W2>
108 return static_cast<bool>(p);
114 return static_cast<bool>(p);
117template <
class W1,
class W2>
120 return p1.get() <
p2.get();
123template <
class W1,
class W2>
126 return p1.get() >
p2.get();
129template <
class W1,
class W2>
132 return p1.get() <=
p2.get();
135template <
class W1,
class W2>
138 return p1.get() >=
p2.get();
151struct hash<
o2::observer_ptr<T>> {
154 return std::hash<T*>()(in.get());
constexpr int p1()
constexpr to accelerate the coordinates changing
observer_ptr(observer_ptr< W2 > other) noexcept
constexpr element_type * release() noexcept
constexpr element_type * get() const noexcept
observer_ptr(const observer_ptr &other)=default
constexpr element_type * operator->() const noexcept
constexpr void swap(observer_ptr &other) noexcept
constexpr std::add_lvalue_reference_t< observer_ptr< element_type > > operator=(element_type *const other)
constexpr std::add_lvalue_reference_t< element_type > operator*() const
constexpr std::add_lvalue_reference_t< observer_ptr< element_type > > operator=(const std::add_lvalue_reference_t< observer_ptr< element_type > > other)
constexpr void reset(element_type *p=nullptr) noexcept
constexpr observer_ptr() noexcept=default
observer_ptr(observer_ptr &&other)=default
observer_ptr(element_type *ptr) noexcept
constexpr void swap(std::nullptr_t) noexcept
GLint GLint GLsizei GLint GLenum GLenum type
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
bool operator!=(const observer_ptr< W1 > &p1, const observer_ptr< W2 > &p2)
bool operator<=(const observer_ptr< W1 > &p1, const observer_ptr< W2 > &p2)
observer_ptr< W > make_observer(W *p) noexcept
bool operator>=(const observer_ptr< W1 > &p1, const observer_ptr< W2 > &p2)
bool operator<(const observer_ptr< W1 > &p1, const observer_ptr< W2 > &p2)
bool operator>(const observer_ptr< W1 > &p1, const observer_ptr< W2 > &p2)
bool operator==(const observer_ptr< W1 > &p1, const observer_ptr< W2 > &p2)
Defining DataPointCompositeObject explicitly as copiable.
VectorOfTObjectPtrs other