| Flutter Impeller |

Public Member Functions | List of all members
impeller::raw_ptr< T > Class Template Reference

A wrapper around a raw ptr that adds additional unopt mode only checks. More...

`#include <raw_ptr.h>`

## Public Member Functions
| raw_ptr (const std::shared_ptr< T > &ptr)
| raw_ptr ()
T * | operator-> ()
const T * | operator-> () const
T * | get ()
T & | operator* ()
const T & | operator* () const
template<class U >
bool | operator== (raw_ptr< U > const &other) const
template<class U >
bool | operator!= (raw_ptr< U > const &other) const
| operator bool () const

## Detailed Description

### template<typename T>
class impeller::raw_ptr< T >

A wrapper around a raw ptr that adds additional unopt mode only checks.

Definition at line 15 of file raw_ptr.h.

## Constructor & Destructor Documentation

## ◆ raw_ptr() [1/2]

template<typename T >

impeller::raw_ptr< T >::raw_ptr | ( | const std::shared_ptr< T > & | ptr | ) |
| inlineexplicit

Definition at line 17 of file raw_ptr.h.

18 : ptr_(ptr.get())
19 #if !NDEBUG
20 ,
21 weak_ptr_(ptr)
22 #endif
23 {
24 }

## ◆ raw_ptr() [2/2]

template<typename T >

impeller::raw_ptr< T >::raw_ptr | ( |  | ) |
| inline

Definition at line 26 of file raw_ptr.h.

26 : ptr_(nullptr) {}

## Member Function Documentation

## ◆ get()

template<typename T >

T* impeller::raw_ptr< T >::get | ( |  | ) |
| inline

Definition at line 42 of file raw_ptr.h.

42 {
43 #if !NDEBUG
44 FML_CHECK(weak_ptr_.lock());
45 #endif
46 return ptr_;
47 }

## ◆ operator bool()

template<typename T >

impeller::raw_ptr< T >::operator bool | ( |  | ) | const
| inlineexplicit

Definition at line 73 of file raw_ptr.h.

73 { return !!ptr_; }

## ◆ operator!=()

template<typename T >
template<class U >

bool impeller::raw_ptr< T >::operator!= | ( | raw_ptr< U > const & | other | ) | const
| inline

Definition at line 69 of file raw_ptr.h.

69 {
70 return !(*this == other);
71 }

## ◆ operator*() [1/2]

template<typename T >

T& impeller::raw_ptr< T >::operator* | ( |  | ) |
| inline

Definition at line 49 of file raw_ptr.h.

49 {
50 #if !NDEBUG
51 FML_CHECK(weak_ptr_.lock());
52 #endif
53 return *ptr_;
54 }

## ◆ operator*() [2/2]

template<typename T >

const T& impeller::raw_ptr< T >::operator* | ( |  | ) | const
| inline

Definition at line 56 of file raw_ptr.h.

56 {
57 #if !NDEBUG
58 FML_CHECK(weak_ptr_.lock());
59 #endif
60 return *ptr_;
61 }

## ◆ operator->() [1/2]

template<typename T >

T* impeller::raw_ptr< T >::operator-> | ( |  | ) |
| inline

Definition at line 28 of file raw_ptr.h.

28 {
29 #if !NDEBUG
30 FML_CHECK(weak_ptr_.lock());
31 #endif
32 return ptr_;
33 }

## ◆ operator->() [2/2]

template<typename T >

const T* impeller::raw_ptr< T >::operator-> | ( |  | ) | const
| inline

Definition at line 35 of file raw_ptr.h.

35 {
36 #if !NDEBUG
37 FML_CHECK(weak_ptr_.lock());
38 #endif
39 return ptr_;
40 }

## ◆ operator==()

template<typename T >
template<class U >

bool impeller::raw_ptr< T >::operator== | ( | raw_ptr< U > const & | other | ) | const
| inline

Definition at line 64 of file raw_ptr.h.

64 {
65 return ptr_ == other.ptr_;
66 }

The documentation for this class was generated from the following file:

- impeller/core/raw_ptr.h