[+] AU_DEFINE_HASHCODE_VA, define AU_DEFINE_EQUALS_VA
[*] Missing AuTryInsert pointer helpers [*] Missing const specifier
This commit is contained in:
parent
55ff37731f
commit
10becf180c
@ -229,3 +229,23 @@ inline thisType(AU_FOR_EACH_FIRST(AU_EMIT_CTOR_MOV, AU_EMIT_CTOR_MOV_SECOND, AU_
|
||||
|
||||
///
|
||||
#define AU_DEFINE_CTOR_VA(thisType, args) AU_DEFINE_CTOR_CPY_VA(thisType, args) AU_DEFINE_CTOR_MOV_VA(thisType, args)
|
||||
|
||||
|
||||
/// @hideinitializer
|
||||
#define AU_DEFINE_EQUALS_VA_A(name) this->name == ref.name
|
||||
|
||||
/// @hideinitializer
|
||||
#define AU_DEFINE_EQUALS_VA_B(name) && AU_DEFINE_EQUALS_VA_A(name)
|
||||
|
||||
///
|
||||
#define AU_DEFINE_EQUALS_VA(thisType, args) bool operator==(const thisType & ref) const noexcept { return AU_FOR_EACH_FIRST(AU_DEFINE_EQUALS_VA_A, AU_DEFINE_EQUALS_VA_B, AU_STRIP_BRACKETS(args)) ; }
|
||||
|
||||
|
||||
/// @hideinitializer
|
||||
#define AU_DEFINE_EQUALS_HASHCODE_A(name) AuHashCode(this->name)
|
||||
|
||||
/// @hideinitializer
|
||||
#define AU_DEFINE_EQUALS_HASHCODE_B(name) ^ AU_DEFINE_EQUALS_HASHCODE_A(name)
|
||||
|
||||
///
|
||||
#define AU_DEFINE_HASHCODE_VA(thisType, args) AuUInt HashCode() const noexcept { return AU_FOR_EACH_FIRST(AU_DEFINE_EQUALS_HASHCODE_A, AU_DEFINE_EQUALS_HASHCODE_B, AU_STRIP_BRACKETS(args)) ; }
|
@ -474,6 +474,18 @@ inline bool AuTryInsert(Container &container, const Value &value)
|
||||
}
|
||||
}
|
||||
|
||||
template <class Map, class Key, class Value>
|
||||
inline bool AuTryInsert(const Map *map, Key &&key, Value &&value)
|
||||
{
|
||||
return AuTryInsert(*map, AuMove(key), AuMove(value));
|
||||
}
|
||||
|
||||
template <class Map, class Key, class Value>
|
||||
inline bool AuTryInsert(const Map *map, const Key &key, Value &&value)
|
||||
{
|
||||
return AuTryInsert(*map, AuReference(key), AuMove(value));
|
||||
}
|
||||
|
||||
template <class Map, class Value>
|
||||
inline bool AuTryInsert(const Map *map, Value &&value)
|
||||
{
|
||||
|
@ -135,9 +135,9 @@ struct AuEnableHashCodeOnData
|
||||
AuUInt HashCode() const
|
||||
{
|
||||
#if defined(AURORA_IS_32BIT)
|
||||
return AuFnv1a32Runtime(AuStaticCast<T>(this), sizeof(T));
|
||||
return AuFnv1a32Runtime(AuStaticCast<AuAddConst_t<T>>(this), sizeof(T));
|
||||
#else
|
||||
return AuFnv1a64Runtime(AuStaticCast<T>(this), sizeof(T));
|
||||
return AuFnv1a64Runtime(AuStaticCast<AuAddConst_t<T>>(this), sizeof(T));
|
||||
#endif
|
||||
}
|
||||
};
|
Loading…
Reference in New Issue
Block a user