DotNetDupe 4.0.6
C++17/20 Implementation of the .NET Base Class Library (BCL)
Loading...
Searching...
No Matches
SmartPointer.h File Reference

Provides reference-counted and weak pointer memory management primitives ensuring zero raw ownership. More...

#include "Common.h"
#include "System/SystemException.h"
#include <type_traits>
#include <utility>

Go to the source code of this file.

Classes

class  DotNetDupe::System::EnableSharedFromThis< T >
class  DotNetDupe::System::EnableSharedFromThisBase
struct  DotNetDupe::System::IsComplete< T, std::void_t< decltype(sizeof(T))> >
struct  DotNetDupe::System::IsComplete< T, typename >
class  DotNetDupe::System::SmartPointer< T >
 A unified smart pointer that supports both unique and shared ownership semantics. More...

Namespaces

namespace  DotNetDupe
namespace  DotNetDupe::System
namespace  DotNetDupe::System::Internal

Macros

#define _INTERLOCKED_DECLARED_

Functions

long __cdecl _InterlockedDecrement (long volatile *Addend)
long __cdecl _InterlockedIncrement (long volatile *Addend)
long DotNetDupe::System::Internal::AtomicDecrement (volatile long *pLocation)
long DotNetDupe::System::Internal::AtomicIncrement (volatile long *pLocation)
template<typename To, typename From>
SmartPointer< To > DotNetDupe::System::ConstPointerCast (const SmartPointer< From > &sp)
template<typename To, typename From>
SmartPointer< To > DotNetDupe::System::DynamicCast (const SmartPointer< From > &sp)
template<typename To, typename From>
SmartPointer< To > DotNetDupe::System::DynamicPointerCast (const SmartPointer< From > &sp)
template<typename To, typename From>
SmartPointer< To > DotNetDupe::System::StaticCast (const SmartPointer< From > &sp)
template<typename To, typename From>
SmartPointer< To > DotNetDupe::System::StaticPointerCast (const SmartPointer< From > &sp)

Detailed Description

Provides reference-counted and weak pointer memory management primitives ensuring zero raw ownership.

Definition in file SmartPointer.h.

Macro Definition Documentation

◆ _INTERLOCKED_DECLARED_

#define _INTERLOCKED_DECLARED_

Definition at line 13 of file SmartPointer.h.

Function Documentation

◆ _InterlockedDecrement()

long __cdecl _InterlockedDecrement ( long volatile * Addend)

◆ _InterlockedIncrement()

long __cdecl _InterlockedIncrement ( long volatile * Addend)