mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-22 12:11:25 +00:00
- added RefCountedBase without virtual destructor
This commit is contained in:
parent
bbcd522052
commit
76ecf44549
1 changed files with 17 additions and 8 deletions
|
@ -1,20 +1,29 @@
|
|||
#pragma once
|
||||
|
||||
// Simple lightweight reference counting pointer alternative for std::shared_ptr which stores the reference counter in the handled object itself.
|
||||
|
||||
// Base class for handled objects
|
||||
|
||||
// Base classes for handled objects
|
||||
class NoVirtualRefCountedBase
|
||||
{
|
||||
public:
|
||||
void IncRef() { refCount++; }
|
||||
void DecRef() { if (--refCount <= 0) delete this; }
|
||||
private:
|
||||
int refCount = 0;
|
||||
};
|
||||
|
||||
class RefCountedBase
|
||||
{
|
||||
public:
|
||||
void IncRef() { refCount++; }
|
||||
void DecRef() { if (--refCount <= 0) delete this; }
|
||||
void IncRef() { refCount++; }
|
||||
void DecRef() { if (--refCount <= 0) delete this; }
|
||||
private:
|
||||
int refCount = 0;
|
||||
int refCount = 0;
|
||||
protected:
|
||||
virtual ~RefCountedBase() = default;
|
||||
virtual ~RefCountedBase() = default;
|
||||
};
|
||||
|
||||
// The actual pointer object
|
||||
|
||||
// The actual pointer object
|
||||
template<class T>
|
||||
class RefCountedPtr
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue