Raven Engine v0.1
A modern 3D Game Engine
Loading...
Searching...
No Matches
Ref.h File Reference

Defines atomic reference-counted smart pointers for Raven. More...

#include "Raven/Core/MemoryTracker.h"
#include "Raven/Core/Base.h"
#include <atomic>
#include <utility>
#include <type_traits>

Classes

class  Raven::RefCounted
 Base class for intrusive reference-counted objects. More...
class  Raven::Ref< T >
 Intrusive reference-counted smart pointer. More...

Namespaces

namespace  Raven

Detailed Description

Defines atomic reference-counted smart pointers for Raven.

Provides two core types:

  • RefCounted: Base class that enables intrusive atomic reference counting.
  • Ref<T>: Thread-safe shared-ownership smart pointer.

Ref<T> implements intrusive reference counting, meaning the reference counter is stored inside the managed object itself (via RefCounted). This avoids separate control-block allocations (unlike std::shared_ptr) and integrates directly with Raven's memory tracking system using rnew/rdelete.

Note
All managed types must inherit from RefCounted.
Warning
Cyclic references are not automatically resolved.
See also
Scope.h, MemoryTracker.h
Author
PhilikusHD