|
Celeritas 0.7.0-dev.245+develop.a7be925e
|
Type-safe non-owning pointer. More...
#include <ObserverPtr.hh>
Public Member Functions | |
| constexpr pointer | get () const noexcept |
| constexpr reference | operator* () const noexcept |
| constexpr pointer | operator-> () const noexcept |
| constexpr | operator pointer () const noexcept |
| constexpr | operator bool () const noexcept |
| constexpr pointer | release () noexcept |
| constexpr void | reset (pointer ptr=nullptr) noexcept |
| constexpr void | swap (ObserverPtr &other) noexcept |
Type aliases | |
| using | element_type = T |
| using | pointer = std::add_pointer_t< T > |
| using | reference = std::add_lvalue_reference_t< T > |
| constexpr | ObserverPtr () noexcept=default |
| constexpr | ObserverPtr (std::nullptr_t) noexcept |
| constexpr | ObserverPtr (pointer ptr) noexcept |
| template<class T2 > | |
| constexpr | ObserverPtr (ObserverPtr< T2, M > other) noexcept |
Type-safe non-owning pointer.
This class is based on WG21 N4282, "A Proposal for the World’s Dumbest Smart Pointer, v4". It adds memspace safety similar to Thrust's host/device_ptr.
The dereferencing operators can only be used from the "native" memspace: i.e., host data can be accessed from a .cc file, and device data from a .cu file.
A manual pointer cast function can be used to access the pointer with no memspace checking.
| using celeritas::ObserverPtr< T, M >::element_type = T |
Construct a pointer
| using celeritas::ObserverPtr< T, M >::pointer = std::add_pointer_t<T> |
Construct a pointer
| using celeritas::ObserverPtr< T, M >::reference = std::add_lvalue_reference_t<T> |
Construct a pointer
|
constexprdefaultnoexcept |
Construct a pointer
|
inlineconstexprnoexcept |
Construct a pointer
|
inlineexplicitconstexprnoexcept |
Construct a pointer
|
inlineconstexprnoexcept |
Construct a pointer
|
inlineconstexprnoexcept |
Access the pointer
|
inlineexplicitconstexprnoexcept |
Access the pointer
|
inlineexplicitconstexprnoexcept |
Access the pointer
|
inlineconstexprnoexcept |
Access the pointer
|
inlineconstexprnoexcept |
Access the pointer
|
inlineconstexprnoexcept |
Modify the pointer
|
inlineconstexprnoexcept |
Modify the pointer
|
inlineconstexprnoexcept |
Modify the pointer