1
0
mirror of https://github.com/Halofreak1990/XFXFramework synced 2024-12-26 13:49:34 +01:00
Tom Lint 7e74ae8683 Added System::Type
Added TypeInfo for all relevant types
Added comments
Updated DependencyProperty to work with System::Type
Fixed casing on PropertyMetadata
2013-07-12 21:30:13 +02:00

44 lines
1.4 KiB
C++

/*****************************************************************************
* Object.h *
* *
* XFX Object definition file *
* Copyright (c) XFX Team. All Rights Reserved *
*****************************************************************************/
#ifndef _SYSTEM_OBJECT_
#define _SYSTEM_OBJECT_
namespace System
{
class String;
class Type;
// Supports all classes in the .NET Framework class hierarchy and provides low-level services to derived classes.
// This is the ultimate base class of all classes in the .NET Framework; it is the root of the type hierarchy.
class Object
{
public:
virtual bool Equals(Object const * const obj) const;
static bool Equals(Object const * const objA, Object const * const objB);
virtual int GetHashCode() const;
static const Type& GetType();
static bool ReferenceEquals(const Object& objA, const Object& objB);
virtual const String ToString() const;
virtual ~Object() { }
};
// returns whether the type of obj1 matches that of obj2
bool is(Object const * const obj1, Object const * const obj2);
// syntax: as<[target type]>([source instance])
template <typename T, typename U>
U * as(T * const source);
template<class T, class B> struct Derived_from {
static void constraints(T* p) { B* pb = p; }
Derived_from() { void(*p)(T*) = constraints; }
};
}
#endif //_SYSTEM_OBJECT_