|
template<typename T > |
static int | GetHashCode (const T &obj) |
| Implements GetHashCode() calls; works on both Object subclasses and unrelated types. More...
|
|
template<typename T , typename T2 > |
static std::enable_if< IsExceptionWrapper< T >::value, bool >::type | Equals (const T &obj, const T2 &another) |
|
template<typename T , typename T2 > |
static std::enable_if< IsSmartPtr< T >::value, bool >::type | Equals (const T &obj, const T2 &another) |
| Substitution for C# Object.Equals calls working for any type in C++. Overload for smart pointer types. More...
|
|
template<typename T , typename T2 > |
static std::enable_if<!IsExceptionWrapper< T >::value &&!IsSmartPtr< T >::value &&!std::is_scalar< T >::value, bool >::type | Equals (T obj, const T2 &another) |
| Substitution for C# Object.Equals calls working for any type in C++. Overload for structure types. More...
|
|
template<typename T , typename T2 > |
static std::enable_if<!IsSmartPtr< T >::value &&std::is_scalar< T >::value, bool >::type | Equals (const T &obj, const T2 &another) |
| Substitution for C# Object.Equals calls working for any type in C++. Overload for scalar types. More...
|
|
template<size_t N> |
static bool | Equals (const char_t(&obj)[N], String another) |
| Substitution for C# Object.Equals calls working for any type in C++. Overload for string literal with string comparison. More...
|
|
static String | ToString (const char_t *obj) |
| Substitution for C# ToString method to work on any C++ type. More...
|
|
template<typename T > |
static String | ToString (const Nullable< T > &obj) |
| Substitution for C# ToString method to work on any C++ type. More...
|
|
template<typename T > |
static std::enable_if< std::is_enum< T >::value, String >::type | ToString (const T &obj) |
| Substitution for C# ToString method to work on any C++ type. More...
|
|
template<typename T > |
static std::enable_if< IsSmartPtr< T >::value, String >::type | ToString (const T &obj) |
| Substitution for C# ToString method to work on any C++ type. More...
|
|
template<typename T > |
static std::enable_if< IsSmartPtr< T >::value||std::is_pointer< T >::value||IsExceptionWrapper< T >::value, String >::type | ToString (T &obj) |
| Substitution for C# ToString method to work on any C++ type. More...
|
|
template<typename T > |
static std::enable_if<!IsSmartPtr< T >::value &&std::is_scalar< T >::value &&!std::is_enum< T >::value, String >::type | ToString (T &obj) |
| Substitution for C# ToString method to work on any C++ type. More...
|
|
template<typename T > |
static std::enable_if<!IsSmartPtr< T >::value &&std::is_scalar< T >::value &&!std::is_enum< T >::value, String >::type | ToString (T &&obj) |
| Substitution for C# ToString method to work on any C++ type. More...
|
|
template<typename T > |
static std::enable_if<!IsExceptionWrapper< T >::value &&!IsSmartPtr< T >::value &&!std::is_scalar< T >::value &&!IsNullable< T >::value, String >::type | ToString (T &obj) |
| Substitution for C# ToString method to work on any C++ type. More...
|
|
template<typename T > |
static std::enable_if<!IsSmartPtr< T >::value &&!std::is_scalar< T >::value &&!IsNullable< T >::value, String >::type | ToString (const T &obj) |
| Substitution for C# ToString method to work on any C++ type. More...
|
|
template<typename T > |
static std::enable_if<!IsSmartPtr< T >::value &&!std::is_scalar< T >::value &&!IsNullable< T >::value &&!std::is_reference< T >::value, String >::type | ToString (T &&obj) |
| Substitution for C# ToString method to work on any C++ type. More...
|
|
template<typename T > |
static std::enable_if< std::is_enum< T >::value, System::SmartPtr< System::Object > >::type | Box (const T &value) |
| Boxes value types for converting to Object. Implementation for enum types. More...
|
|
template<typename T > |
static std::enable_if<!std::is_enum< T >::value &&!IsNullable< T >::value, System::SmartPtr< System::Object > >::type | Box (const T &value) |
| Boxes value types for converting to Object. Implementation for non-enum types. More...
|
|
template<typename T > |
static std::enable_if< IsNullable< T >::value, System::SmartPtr< System::Object > >::type | Box (const T &value) |
| Boxes Nullable types for converting to Object. More...
|
|
template<typename T > |
static std::enable_if< std::is_enum< T >::value, T >::type | Unbox (const SmartPtr< Object > &obj) |
| Unboxes value types after converting to Object. Implementation for enum types. More...
|
|
template<class T > |
static std::enable_if<!std::is_enum< T >::value &&detail::has_operator_equal< T >::value, T >::type | Unbox (const SmartPtr< Object > &obj) |
| Unboxes value types after converting to Object. Implementation for non-enum & non-nullable types. More...
|
|
template<class T > |
static std::enable_if<!std::is_enum< T >::value &&!detail::has_operator_equal< T >::value, T >::type | Unbox (const SmartPtr< Object > &obj) |
| Unboxes value types after converting to Object. Implementation for non-enum & non-nullable types. More...
|
|
template<class T , class E > |
static std::enable_if< std::is_enum< E >::value &&std::numeric_limits< T >::is_integer, T >::type | Unbox (E e) |
| Unboxes enum types to integer. More...
|
|
template<class T , class E > |
static std::enable_if< std::is_enum< E >::value &&std::is_enum< T >::value, T >::type | Unbox (E e) |
| Converts enum types. More...
|
|
static String | UnboxStringSafe (const SmartPtr< Object > &obj) |
| Unboxes string from boxed value. More...
|
|
template<class T > |
static Nullable< T > | UnboxToNullable (const SmartPtr< Object > &obj, bool safe=true) |
| Unboxes object to nullable type. More...
|
|
template<class T , class U > |
static std::enable_if< std::is_convertible< T, Object >::value &&std::is_final< T >::value &&!System::IsBoxable< T >::value &&System::IsSmartPtr< U >::value, bool >::type | Is (const U &obj) |
| Implements 'is' operator translation. Specialization for pointer types optimized for 'final' classes. More...
|
|
template<class T , class U > |
static std::enable_if< std::is_convertible< T, Object >::value &&!std::is_final< T >::value &&!System::IsBoxable< T >::value &&System::IsSmartPtr< U >::value, bool >::type | Is (const U &obj) |
| Implements 'is' operator translation. Specialization for pointer types. More...
|
|
template<class T > |
static std::enable_if< std::is_convertible< T, Object >::value, bool >::type | Is (const Object &obj) |
| Implements 'is' operator translation. Specialization for value types. More...
|
|
template<class T > |
static std::enable_if<!std::is_convertible< T, Object >::value, bool >::type | Is (const Object &obj) |
| Implements 'is' operator translation. Specialization for unconvertible types. More...
|
|
template<class T , class U > |
static std::enable_if< IsSmartPtr< T >::value, bool >::type | Is (const SmartPtr< U > &obj) |
| Implements 'is' operator translation. Specialization for pointer types. More...
|
|
template<class T , class U > |
static std::enable_if< IsExceptionWrapper< T >::value, bool >::type | Is (const ExceptionWrapper< U > &obj) |
| Implements 'is' operator translation. Specialization for exception wrapper types. More...
|
|
template<class T > |
static std::enable_if< IsNullable< T >::value, bool >::type | Is (const SmartPtr< Object > &obj) |
| Implements 'is' operator translation. Specialization for nullable types. More...
|
|
template<class T > |
static std::enable_if< System::IsBoxable< T >::value &&!IsNullable< T >::value &&!std::is_enum< T >::value &&detail::has_operator_equal< T >::value, bool >::type | Is (const SmartPtr< Object > &obj) |
| Implements 'is' operator translation. Specialization for boxable types with == operator defined. More...
|
|
template<class T > |
static std::enable_if< System::IsBoxable< T >::value &&!IsNullable< T >::value &&!std::is_enum< T >::value &&!detail::has_operator_equal< T >::value, bool >::type | Is (const SmartPtr< Object > &obj) |
| Implements 'is' operator translation. Specialization for boxable types without defined ==. More...
|
|
template<class T , class U > |
static std::enable_if< std::is_enum< T >::value, bool >::type | Is (const SmartPtr< U > &obj) |
| Implements 'is' operator translation. Specialization for enum types. More...
|
|
template<class T , class U > |
static std::enable_if< std::is_enum< T >::value, bool >::type | Is (const WeakPtr< U > &obj) |
| Implements 'is' operator translation. Specialization for enum types vs weak pointers. More...
|
|
template<class T , class U > |
static bool | Is (const Nullable< U > &value) |
| Implements 'is' operator translation. Specialization for Nullable type. More...
|
|
template<class T > |
static bool | Is (const char16_t *str) |
| Implements 'is' operator translation. Specialization for string literal. More...
|
|
template<class T > |
static bool | Is (int32_t value) |
| Implements 'is' operator translation. Specialization for integer literal. More...
|
|
static bool | IsBoxedValue (const SmartPtr< Object > &obj) |
| Checks if object is a boxed value. More...
|
|
template<typename T > |
static std::enable_if< IsSmartPtr< T >::value, System::SmartPtr< Object > >::type | UnknownToObject (T obj) |
| Converts unknown type to Object, handling both smart pointer type and value type situations. More...
|
|
template<typename T > |
static std::enable_if<!IsSmartPtr< T >::value, System::SmartPtr< Object > >::type | UnknownToObject (const T &obj) |
| Converts unknown type to Object, handling both smart pointer type and value type situations. More...
|
|
template<typename T > |
static std::enable_if< IsSmartPtr< T >::value, T >::type | ObjectToUnknown (SmartPtr< Object > obj) |
| Converts Object to unknown type, handling both smart pointer type and bpxed value situations. More...
|
|
template<typename T > |
static std::enable_if<!IsSmartPtr< T >::value, T >::type | ObjectToUnknown (SmartPtr< Object > obj) |
| Converts Object to unknown type, handling both smart pointer type and boxed value situations. More...
|
|
template<typename T > |
static std::enable_if<!std::is_scalar< T >::value, bool >::type | UnknownIsNull (T obj) |
| Checks whether unknown type object is nullptr. Overload for non-scalar types. More...
|
|
template<typename T > |
static std::enable_if< std::is_scalar< T >::value, bool >::type | UnknownIsNull (T obj) |
| Checks whether unknown type object is nullptr. Overload for scalar types. More...
|
|
template<typename RT1 , typename RT2 , typename F > |
static std::conditional< std::is_convertible< RT2, RT1 >::value, RT1, RT2 >::type | CoalesceInternal (RT1 value, F func) |
| Implementation of '??' operator translation for non-nullable types. Overload for case if RT2 is convertable to RT1. More...
|
|
template<typename T0 , typename T1 > |
static auto | Coalesce (T0 value, T1 func) |
| Implementation of '??' operator translation for non-nullable types. More...
|
|
template<typename T0 , typename T1 > |
static T0 | Coalesce (System::Nullable< T0 > value, T1 func) |
| Implementation of '??' operator translation for nullable types. More...
|
|
template<typename T > |
static SmartPtr< System::BoxedValueBase > | BoxEnum (T enumValue) |
| Boxes enum types for being propagated as Object. More...
|
|
template<typename To , typename ... From> |
static std::enable_if<(std::is_fundamental< To >::value), std::array< To, sizeof...(From)> >::type | ArrayInitializerCast (From ...args) |
| Converts array fundamental values (which C# does implicitly but C++ apparently does not). More...
|
|
static SmartPtr< System::Collections::IList > | CastToIList (const SmartPtr< Object > &obj) |
|
template<typename T > |
static std::enable_if< System::IsBoxable< T >::value, System::SharedPtr< System::Object > >::type | ExplicitCastToObject (const T &value) |
|
template<typename T > |
static std::enable_if< System::IsSmartPtr< T >::value, System::SharedPtr< System::Object > >::type | ExplicitCastToObject (const T &value) |
|
template<> |
bool | Equals (const float &obj, const float &another) |
| Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
|
|
template<> |
bool | Equals (const double &obj, const double &another) |
| Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
|
|
template<> |
SmartPtr< Object > | Box (const String &value) |
| Boxes string values. More...
|
|
template<> |
String | Unbox (const SmartPtr< Object > &obj) |
| Unboxes string values. More...
|
|
template<typename T > |
static std::enable_if< IsSmartPtr< T >::value, constSystem::TypeInfo & >::type | GetType (const T &obj) |
| Implements typeof() translation. Overload for smart pointers. More...
|
|
template<typename T > |
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. More...
|
|
template<typename T > |
static std::enable_if< IsExceptionWrapper< T >::value, constSystem::TypeInfo & >::type | GetType (const T &obj) |
| Implements typeof() translation. Overload for exceptions. More...
|
|
template<typename T > |
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. More...
|
|
template<typename T > |
static std::enable_if< IsNullable< T >::value, constSystem::TypeInfo & >::type | GetType (const T obj) |
| Implements typeof() translation. Overload for Nullable types. More...
|
|
template<typename T > |
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. More...
|
|
template<typename T > |
static std::enable_if< std::is_enum< T >::value, constSystem::TypeInfo & >::type | GetType () |
| Implements typeof() translation. Overload for enum types. More...
|
|
template<typename T > |
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. More...
|
|
template<typename T > |
static std::enable_if< IsNullable< T >::value, constSystem::TypeInfo & >::type | GetType () |
| Implements typeof() translation. Overload for Nullable. More...
|
|
template<typename T > |
static std::enable_if< detail::is_a< T, MulticastDelegate >::value, constSystem::TypeInfo & >::type | GetType () |
| Implements typeof() translation. Overload for MutlicastDelegate. More...
|
|
template<typename T > |
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. More...
|
|
static const System::TypeInfo & | GetType (const String &obj) |
| Implements typeof() translation. Overload for string type. More...
|
|
template<> |
const System::TypeInfo & | GetType () |
| Implements typeof() translation. Overload for uint8_t. More...
|
|
template<> |
const System::TypeInfo & | GetType () |
| Implements typeof() translation. Overload for char16_t. More...
|
|
template<> |
const System::TypeInfo & | GetType () |
| Implements typeof() translation. Overload for int32_t. More...
|
|
template<> |
const System::TypeInfo & | GetType () |
| Implements typeof() translation. Overload for int64_t. More...
|
|
template<> |
const System::TypeInfo & | GetType () |
| Implements typeof() translation. Overload for bool. More...
|
|
template<> |
const System::TypeInfo & | GetType () |
| Implements typeof() translation. Overload for Void. More...
|
|