Allow index on member of base class
This commit is contained in:
parent
08f28a1706
commit
06909a24c4
|
@ -178,7 +178,7 @@ template <class Class, typename Type, typename Parent> struct LMDB_SAFE_EXPORT L
|
|||
};
|
||||
|
||||
/*!
|
||||
* \brief The index_on struct is used to declare an index on a member variable of a particular type.
|
||||
* \brief The index_on struct is used to declare an index on a member variable of a particular class.
|
||||
*/
|
||||
template <class Class, typename Type, Type Class::*PtrToMember> struct index_on : LMDBIndexOps<Class, Type, index_on<Class, Type, PtrToMember>> {
|
||||
index_on()
|
||||
|
@ -193,6 +193,23 @@ template <class Class, typename Type, Type Class::*PtrToMember> struct index_on
|
|||
typedef Type type;
|
||||
};
|
||||
|
||||
/*!
|
||||
* \brief The index_on_base_member struct is used to declare an index on a member variable of a base class of a particular class.
|
||||
*/
|
||||
template <class Class, typename Type, class BaseClass, Type BaseClass::*PtrToMember>
|
||||
struct index_on_base_member : LMDBIndexOps<Class, Type, index_on_base_member<Class, Type, BaseClass, PtrToMember>> {
|
||||
index_on_base_member()
|
||||
: LMDBIndexOps<Class, Type, index_on_base_member<Class, Type, BaseClass, PtrToMember>>(this)
|
||||
{
|
||||
}
|
||||
static Type getMember(const BaseClass &c)
|
||||
{
|
||||
return c.*PtrToMember;
|
||||
}
|
||||
|
||||
typedef Type type;
|
||||
};
|
||||
|
||||
/*!
|
||||
* \brief The index_on_function struct is used to declare an index which is dynamically computed via
|
||||
* a function.
|
||||
|
|
Loading…
Reference in New Issue