|
@@ -72,7 +72,7 @@ namespace AZ::AzGenericTypeInfo::Internal
|
|
|
//! MSVC has the both overloaded functions as ambiguous
|
|
|
//!
|
|
|
//! One particular case is AZStd::basic_fixed_string
|
|
|
- //! It is template parmeters are
|
|
|
+ //! It is template parameters are
|
|
|
//! `<class Element, size_t MaxElementCount, class Traits = char_traits<Element>>`
|
|
|
//!
|
|
|
//! The way to avoid the is to make sure that none of the template template parameters
|
|
@@ -176,33 +176,31 @@ namespace AZ::AzGenericTypeInfo
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TYPENAME__TYPE typename
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TYPENAME__ARG(A) A
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TYPENAME__UUID(A) AZ::Internal::GetCanonicalTypeId< A >()
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TYPENAME__NAME(A) AZ::Internal::GetTypeName< A >()
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TYPENAME_TYPE typename
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TYPENAME_ARG(A) A
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TYPENAME_UUID(A) AZ::Internal::GetCanonicalTypeId< A >()
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TYPENAME_NAME(A) AZ::Internal::GetTypeName< A >()
|
|
|
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_CLASS__TYPE class
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_CLASS__ARG(A) A
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_CLASS__UUID(A) AZ::Internal::GetCanonicalTypeId< A >()
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_CLASS__NAME(A) AZ::Internal::GetTypeName< A >()
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_CLASS_TYPE class
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_CLASS_ARG(A) A
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_CLASS_UUID(A) AZ::Internal::GetCanonicalTypeId< A >()
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_CLASS_NAME(A) AZ::Internal::GetTypeName< A >()
|
|
|
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TYPENAME_VARARGS__TYPE typename...
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TYPENAME_VARARGS__ARG(A) A...
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TYPENAME_VARARGS__UUID(A) AZ::Internal::AggregateTypes< A... >::GetCanonicalTypeId()
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TYPENAME_VARARGS__NAME(A) AZ::Internal::AggregateTypes< A... >::TypeName()
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TYPENAME_VARARGS_TYPE typename...
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TYPENAME_VARARGS_ARG(A) A...
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TYPENAME_VARARGS_UUID(A) AZ::Internal::AggregateTypes< A... >::GetCanonicalTypeId()
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TYPENAME_VARARGS_NAME(A) AZ::Internal::AggregateTypes< A... >::TypeName()
|
|
|
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_CLASS_VARARGS__TYPE class...
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_CLASS_VARARGS__ARG(A) A...
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_CLASS_VARARGS__UUID(A) AZ::Internal::AggregateTypes< A... >::GetCanonicalTypeId()
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_CLASS_VARARGS__NAME(A) AZ::Internal::AggregateTypes< A... >::TypeName()
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_CLASS_VARARGS_TYPE class...
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_CLASS_VARARGS_ARG(A) A...
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_CLASS_VARARGS_UUID(A) AZ::Internal::AggregateTypes< A... >::GetCanonicalTypeId()
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_CLASS_VARARGS_NAME(A) AZ::Internal::AggregateTypes< A... >::TypeName()
|
|
|
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_AUTO__TYPE auto
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_AUTO__ARG(A) A
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_AUTO__UUID(A) AZ::Internal::GetCanonicalTypeId< A >()
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_AUTO__NAME(A) AZ::Internal::GetTypeName< A >()
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_AUTO_TYPE auto
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_AUTO_ARG(A) A
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_AUTO_UUID(A) AZ::Internal::GetCanonicalTypeId< A >()
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_AUTO_NAME(A) AZ::Internal::GetTypeName< A >()
|
|
|
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_EXPAND_I(NAME, TARGET) NAME##__##TARGET
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_EXPAND(NAME, TARGET) AZ_TYPE_INFO_INTERNAL_EXPAND_I(NAME, TARGET)
|
|
|
|
|
|
// NOTE: This the same macro logic as the `AZ_MACRO_SPECIALIZE`, but it must used instead of
|
|
|
// `AZ_MACRO_SPECIALIZE` macro as the C preprocessor macro expansion will not expand a macro with the same
|
|
@@ -225,32 +223,32 @@ namespace AZ::AzGenericTypeInfo
|
|
|
# define AZ_TYPE_INFO_INTERNAL_MACRO_CALL_I(MACRO_NAME, NPARAMS, PARAMS) AZ_TYPE_INFO_INTERNAL_MACRO_CALL_II(MACRO_NAME, NPARAMS, PARAMS)
|
|
|
# define AZ_TYPE_INFO_INTERNAL_MACRO_CALL(MACRO_NAME, NPARAMS, PARAMS) AZ_TYPE_INFO_INTERNAL_MACRO_CALL_I(MACRO_NAME, NPARAMS, PARAMS)
|
|
|
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_1(_1) AZ_TYPE_INFO_INTERNAL_EXPAND(_1, TYPE) T1
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_2(_1, _2) AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_1(_1), AZ_TYPE_INFO_INTERNAL_EXPAND(_2, TYPE) T2
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_3(_1, _2, _3) AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_2(_1, _2), AZ_TYPE_INFO_INTERNAL_EXPAND(_3, TYPE) T3
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_4(_1, _2, _3, _4) AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_3(_1, _2, _3), AZ_TYPE_INFO_INTERNAL_EXPAND(_4, TYPE) T4
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_5(_1, _2, _3, _4, _5) AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_4(_1, _2, _3, _4), AZ_TYPE_INFO_INTERNAL_EXPAND(_5, TYPE) T5
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_1(_1) AZ_JOIN(_1, _TYPE) T1
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_2(_1, _2) AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_1(_1), AZ_JOIN(_2, _TYPE) T2
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_3(_1, _2, _3) AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_2(_1, _2), AZ_JOIN(_3, _TYPE) T3
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_4(_1, _2, _3, _4) AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_3(_1, _2, _3), AZ_JOIN(_4, _TYPE) T4
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_5(_1, _2, _3, _4, _5) AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_4(_1, _2, _3, _4), AZ_JOIN(_5, _TYPE) T5
|
|
|
#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION(...) AZ_TYPE_INFO_INTERNAL_MACRO_CALL(AZ_TYPE_INFO_INTERNAL_TEMPLATE_TYPE_EXPANSION_, AZ_VA_NUM_ARGS(__VA_ARGS__), (__VA_ARGS__))
|
|
|
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_1(_1) AZ_TYPE_INFO_INTERNAL_EXPAND(_1, ARG)(T1)
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_2(_1, _2) AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_1(_1), AZ_TYPE_INFO_INTERNAL_EXPAND(_2, ARG)(T2)
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_3(_1, _2, _3) AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_2(_1, _2), AZ_TYPE_INFO_INTERNAL_EXPAND(_3, ARG)(T3)
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_4(_1, _2, _3, _4) AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_3(_1, _2, _3), AZ_TYPE_INFO_INTERNAL_EXPAND(_4, ARG)(T4)
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_5(_1, _2, _3, _4, _5) AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_4(_1, _2, _3, _4), AZ_TYPE_INFO_INTERNAL_EXPAND(_5, ARG)(T5)
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_1(_1) AZ_JOIN(_1, _ARG)(T1)
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_2(_1, _2) AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_1(_1), AZ_JOIN(_2, _ARG)(T2)
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_3(_1, _2, _3) AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_2(_1, _2), AZ_JOIN(_3, _ARG)(T3)
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_4(_1, _2, _3, _4) AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_3(_1, _2, _3), AZ_JOIN(_4, _ARG)(T4)
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_5(_1, _2, _3, _4, _5) AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_4(_1, _2, _3, _4), AZ_JOIN(_5, _ARG)(T5)
|
|
|
#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION(...) AZ_TYPE_INFO_INTERNAL_MACRO_CALL(AZ_TYPE_INFO_INTERNAL_TEMPLATE_ARGUMENT_EXPANSION_, AZ_VA_NUM_ARGS(__VA_ARGS__), (__VA_ARGS__))
|
|
|
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_1(_1) AZ_TYPE_INFO_INTERNAL_EXPAND(_1, NAME)(T1)
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_2(_1, _2) AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_1(_1), AZ_TYPE_INFO_INTERNAL_EXPAND(_2, NAME)(T2)
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_3(_1, _2, _3) AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_2(_1, _2), AZ_TYPE_INFO_INTERNAL_EXPAND(_3, NAME)(T3)
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_4(_1, _2, _3, _4) AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_3(_1, _2, _3), AZ_TYPE_INFO_INTERNAL_EXPAND(_4, NAME)(T4)
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_5(_1, _2, _3, _4, _5) AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_4(_1, _2, _3, _4), AZ_TYPE_INFO_INTERNAL_EXPAND(_5, NAME)(T5)
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_1(_1) AZ_JOIN(_1, _NAME)(T1)
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_2(_1, _2) AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_1(_1), AZ_JOIN(_2, _NAME)(T2)
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_3(_1, _2, _3) AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_2(_1, _2), AZ_JOIN(_3, _NAME)(T3)
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_4(_1, _2, _3, _4) AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_3(_1, _2, _3), AZ_JOIN(_4, _NAME)(T4)
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_5(_1, _2, _3, _4, _5) AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_4(_1, _2, _3, _4), AZ_JOIN(_5, _NAME)(T5)
|
|
|
#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION(...) AZ_TYPE_INFO_INTERNAL_MACRO_CALL(AZ_TYPE_INFO_INTERNAL_TEMPLATE_NAME_EXPANSION_, AZ_VA_NUM_ARGS(__VA_ARGS__), (__VA_ARGS__))
|
|
|
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_1(_1) AZ_TYPE_INFO_INTERNAL_EXPAND(_1, UUID)(T1)
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_2(_1, _2) (AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_1(_1) + AZ_TYPE_INFO_INTERNAL_EXPAND(_2, UUID)(T2))
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_3(_1, _2, _3) (AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_2(_1, _2) + AZ_TYPE_INFO_INTERNAL_EXPAND(_3, UUID)(T3))
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_4(_1, _2, _3, _4) (AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_3(_1, _2, _3) + AZ_TYPE_INFO_INTERNAL_EXPAND(_4, UUID)(T4))
|
|
|
-#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_5(_1, _2, _3, _4, _5) (AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_4(_1, _2, _3, _4) + AZ_TYPE_INFO_INTERNAL_EXPAND(_5, UUID)(T5))
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_1(_1) AZ_JOIN(_1, _UUID)(T1)
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_2(_1, _2) (AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_1(_1) + AZ_JOIN(_2, _UUID)(T2))
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_3(_1, _2, _3) (AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_2(_1, _2) + AZ_JOIN(_3, _UUID)(T3))
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_4(_1, _2, _3, _4) (AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_3(_1, _2, _3) + AZ_JOIN(_4, _UUID)(T4))
|
|
|
+#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_5(_1, _2, _3, _4, _5) (AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_4(_1, _2, _3, _4) + AZ_JOIN(_5, _UUID)(T5))
|
|
|
#define AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION(...) AZ_TYPE_INFO_INTERNAL_MACRO_CALL(AZ_TYPE_INFO_INTERNAL_TEMPLATE_UUID_EXPANSION_, AZ_VA_NUM_ARGS(__VA_ARGS__), (__VA_ARGS__))
|
|
|
|
|
|
|