|
template<typename T > |
static int | GetHashCode (const T &obj) |
| Implements GetHashCode() calls; works on both Object subclasses and unrelated types.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
static String | ToString (const char_t *obj) |
| Substitution for C# ToString method to work on any C++ type.
|
|
template<typename T > |
static String | ToString (const Nullable< T > &obj) |
| Substitution for C# ToString method to work on any C++ type.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
static ASPOSECPP_SHARED_API String | UnboxStringSafe (const SmartPtr< Object > &obj) |
| Unboxes string from boxed value.
|
|
template<class T > |
static Nullable< T > | UnboxToNullable (const SmartPtr< Object > &obj, bool safe=true) |
| Unboxes object to nullable type.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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 ==.
|
|
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.
|
|
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.
|
|
template<class T , class U > |
static bool | Is (const Nullable< U > &value) |
| Implements 'is' operator translation. Specialization for Nullable type.
|
|
template<class T > |
static bool | Is (const char16_t *str) |
| Implements 'is' operator translation. Specialization for string literal.
|
|
template<class T > |
static bool | Is (int32_t value) |
| Implements 'is' operator translation. Specialization for integer literal.
|
|
static ASPOSECPP_SHARED_API bool | IsBoxedValue (const SmartPtr< Object > &obj) |
| Checks if object is a boxed value.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
template<typename T0 , typename T1 > |
static auto | Coalesce (T0 value, T1 func) |
| Implementation of '??' operator translation for non-nullable types.
|
|
template<typename T0 , typename T1 > |
static T0 | Coalesce (System::Nullable< T0 > value, T1 func) |
| Implementation of '??' operator translation for nullable types.
|
|
template<typename T > |
static SmartPtr< System::BoxedValueBase > | BoxEnum (T enumValue) |
| Boxes enum types for being propagated as Object.
|
|
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).
|
|
static ASPOSECPP_SHARED_API 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.
|
|
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.
|
|
template<> |
SmartPtr< Object > | Box (const String &value) |
| Boxes string values.
|
|
template<> |
String | Unbox (const SmartPtr< Object > &obj) |
| Unboxes string values.
|
|
template<typename T > |
static std::enable_if< IsSmartPtr< T >::value, constSystem::TypeInfo & >::type | GetType (const T &obj) |
| Implements typeof() translation. Overload for smart pointers.
|
|
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.
|
|
template<typename T > |
static std::enable_if< IsExceptionWrapper< T >::value, constSystem::TypeInfo & >::type | GetType (const T &obj) |
| Implements typeof() translation. Overload for exceptions.
|
|
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.
|
|
template<typename T > |
static std::enable_if< IsNullable< T >::value, constSystem::TypeInfo & >::type | GetType (const T obj) |
| Implements typeof() translation. Overload for Nullable types.
|
|
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.
|
|
template<typename T > |
static std::enable_if< std::is_enum< T >::value, constSystem::TypeInfo & >::type | GetType () |
| Implements typeof() translation. Overload for enum types.
|
|
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.
|
|
template<typename T > |
static std::enable_if< IsNullable< T >::value, constSystem::TypeInfo & >::type | GetType () |
| Implements typeof() translation. Overload for Nullable.
|
|
template<typename T > |
static std::enable_if< detail::is_a< T, MulticastDelegate >::value, constSystem::TypeInfo & >::type | GetType () |
| Implements typeof() translation. Overload for MutlicastDelegate.
|
|
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.
|
|
static const System::TypeInfo & | GetType (const String &obj) |
| Implements typeof() translation. Overload for string type.
|
|
template<> |
const System::TypeInfo & | GetType () |
| Implements typeof() translation. Overload for uint8_t.
|
|
template<> |
const System::TypeInfo & | GetType () |
| Implements typeof() translation. Overload for char16_t.
|
|
template<> |
const System::TypeInfo & | GetType () |
| Implements typeof() translation. Overload for int32_t.
|
|
template<> |
const System::TypeInfo & | GetType () |
| Implements typeof() translation. Overload for int64_t.
|
|
template<> |
const System::TypeInfo & | GetType () |
| Implements typeof() translation. Overload for bool.
|
|
template<> |
const System::TypeInfo & | GetType () |
| Implements typeof() translation. Overload for Void.
|
|