Skip to content

scram::core::IntrusivePtrCast

Provides pointer and reference cast wrappers for intrusive Vertex pointers. More...

#include <bdd.h>

Inherited by scram::core::NonTerminal< Ite >, scram::core::NonTerminal< SetNode >, scram::core::NonTerminal< T >

Public Functions

Name
IntrusivePtr< W >Ptr(const IntrusivePtr< Vertex< T > > & vertex)
W &Ref(const IntrusivePtr< Vertex< T > > & vertex)

Detailed Description

cpp
template <class T ,
class W  =T>
struct scram::core::IntrusivePtrCast;

Provides pointer and reference cast wrappers for intrusive Vertex pointers.

Template Parameters:

  • T The type of the main functional BDD vertex.
  • W The wrapper type to cast to.

Public Functions Documentation

function Ptr

cpp
static inline IntrusivePtr< W > Ptr(
    const IntrusivePtr< Vertex< T > > & vertex
)

Parameters:

  • vertex Pointer to a Vertex known to be convertible to W.

Return: The cast reference-counted pointer to the vertex, or the cast reference (without count increment!) to the vertex.

Precondition: static_cast<W>(Vertex<T>) is successful.

function Ref

cpp
static inline W & Ref(
    const IntrusivePtr< Vertex< T > > & vertex
)

Updated on 2025-11-11 at 16:51:08 +0000