11 std::shared_ptr<ResourceBlockTemplate<T>> mResourcePointerBlock;
13 ResourcePointer() =
default;
15 : mResourcePointerBlock(block) {}
17 virtual ~ResourcePointer() =
default;
19 bool isValid(ValidityCheckType validityCheckType)
const {
20 if (!mResourcePointerBlock) {
23 return std::get<0>(mResourcePointerBlock->mTrackingBlock.Validate(validityCheckType));
26 T* get()
const {
return mResourcePointerBlock ? mResourcePointerBlock->get() :
nullptr; }
27 T* operator->()
const {
return get(); }
28 T& operator*()
const {
return *get(); }
29 explicit operator bool()
const {
return mResourcePointerBlock !=
nullptr; }
30 void reset() { mResourcePointerBlock.reset(); }
32 ResourcePointer(ResourcePointer
const&) =
default;
33 ResourcePointer(ResourcePointer&&) =
default;
34 ResourcePointer& operator=(ResourcePointer
const&) =
default;
35 ResourcePointer& operator=(ResourcePointer&&) =
default;