4#include <system/object.h>
5#include <system/smart_ptr.h>
6#include <system/weak_ptr.h>
7#include <system/convert.h>
8#include <system/decimal.h>
9#include <system/nullable.h>
10#include <system/int32.h>
11#include <system/int64.h>
12#include <system/void.h>
14#include <initializer_list>
36 return obj->GetType();
58 return obj.Get()->GetType();
67 static inline typename std::enable_if<std::is_fundamental<T>::value || std::is_enum<T>::value,
const System::TypeInfo&>::type
GetType(
const T obj)
80 return GetType<typename T::ValueType>();
90 static inline typename std::enable_if<std::is_fundamental<T>::value && !std::is_enum<T>::value,
const System::TypeInfo&>::type
GetType()
92 return TypeInfo::BoxedValueType<T>();
102 return TypeInfo::BoxedValueType<T>();
109 template <
typename T>
119 template <
typename T>
129 template <
typename T>
139 template <
typename T>
140 static inline typename std::enable_if<
141 !std::is_fundamental<T>::value &&
142 !std::is_enum<T>::value &&
148 return TypeInfo::BoxedValueType<T>();
158 return System::String::Type();
167 return System::Byte::Type();
175 return System::Char::Type();
183 return System::Int32::Type();
191 return System::Int64::Type();
199 return System::Boolean::Type();
207 return System::String::Type();
223 return System::Void::Type();
static const TypeInfo & Type()
Returns a TypeInfo object that contains information about this class.
Definition: date_time.h:654
Provides static methods that implement object type getters. This is a static type with no instance se...
Definition: object_type.h:26
static std::enable_if< std::is_enum< T >::value, constSystem::TypeInfo & >::type GetType()
Implements typeof() translation. Overload for enum types.
Definition: object_type.h:100
static std::enable_if< detail::is_a< T, MulticastDelegate >::value, constSystem::TypeInfo & >::type GetType()
Implements typeof() translation. Overload for MutlicastDelegate.
Definition: object_type.h:130
static std::enable_if< std::is_fundamental< T >::value||std::is_enum< T >::value, constSystem::TypeInfo & >::type GetType(const T obj)
Implements typeof() translation. Overload for primitive types.
Definition: object_type.h:67
static std::enable_if<!std::is_fundamental< T >::value &&!std::is_enum< T >::value &&IsBoxable< T >::value &&!detail::is_a< T, MulticastDelegate >::value &&!IsNullable< T >::value, constSystem::TypeInfo & >::type GetType()
Implements typeof() translation. Overload for structures and pointers.
Definition: object_type.h:146
static std::enable_if< IsNullable< T >::value, constSystem::TypeInfo & >::type GetType(const T obj)
Implements typeof() translation. Overload for Nullable types.
Definition: object_type.h:78
static const System::TypeInfo & GetType(const String &obj)
Implements typeof() translation. Overload for string type.
Definition: object_type.h:155
static std::enable_if< std::is_fundamental< T >::value &&!std::is_enum< T >::value, constSystem::TypeInfo & >::type GetType()
Implements typeof() translation. Overload for primitive types.
Definition: object_type.h:90
static std::enable_if<(!std::is_fundamental< T >::value &&!std::is_enum< T >::value &&!IsBoxable< T >::value)||IsExceptionWrapper< T >::value, constSystem::TypeInfo & >::type GetType()
Implements typeof() translation. Overload for structures and pointers.
Definition: object_type.h:110
static std::enable_if< IsNullable< T >::value, constSystem::TypeInfo & >::type GetType()
Implements typeof() translation. Overload for Nullable.
Definition: object_type.h:120
static std::enable_if<!IsExceptionWrapper< T >::value &&!IsSmartPtr< T >::value &&!std::is_fundamental< T >::value &&!std::is_enum< T >::value &&!IsNullable< T >::value, constSystem::TypeInfo & >::type GetType(const T &obj)
Implements typeof() translation. Overload for structures.
Definition: object_type.h:45
static std::enable_if< IsExceptionWrapper< T >::value, constSystem::TypeInfo & >::type GetType(const T &obj)
Implements typeof() translation. Overload for exceptions.
Definition: object_type.h:56
static std::enable_if< IsSmartPtr< T >::value, constSystem::TypeInfo & >::type GetType(const T &obj)
Implements typeof() translation. Overload for smart pointers.
Definition: object_type.h:34
String class used across the library. Is a substitute for C# System.String when translating code....
Definition: string.h:122
Represents a particular type and provides information about it.
Definition: type_info.h:109
Definition: db_command.h:9
Template predicate that checks if boxing of the specified type is supported.
Definition: boxable_traits.h:16
A template predicate that determines if the specified type is a Exception class or its descendant.
Definition: object.h:405
A template predicate that determines if its template argument T in Nullable or its subclass.
Definition: nullable.h:23
Trait class to check if a type is a specialization of SmartPtr class.
Definition: smart_ptr.h:1499
Tests if specific type is a specialization of specific template. If it is, inherits std::true_type,...
Definition: detail.h:80