Re: CMap and struct
- From: Joseph M. Newcomer <newcomer@xxxxxxxxxxxx>
- Date: Thu, 03 May 2007 11:23:21 -0400
Now that's a different question. Since you are storing a structure, you would have to
provide your own hashing function. Note the comment "works for most primitive values".
Your SDataType is not a primitive value, and consequently this hash function is not
sufficient.
joe
On 2 May 2007 21:14:27 -0700, Vahid <vahid.ha@xxxxxxxxx> wrote:
Thanks for your reply Joseph.Joseph M. Newcomer [MVP]
I have already tried a few combinations such as the one you suggested.
Yours will create the following errors:
error C2440: 'type cast' : cannot convert from 'SDataType' to
'DWORD_PTR' (refers to the "return" line in
template<class ARG_KEY>
AFX_INLINE UINT AFXAPI HashKey(ARG_KEY key)
{
// default identity hash - works for most primitive values
return (DWORD)(((DWORD_PTR)key)>>4);
}
)
plus the following error:
error C2678: binary '==' : no operator found which takes a left-hand
operand of type 'const SDataType' (or there is no acceptable
conversion)
D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc
\include\afxtempl.h(1544) : see reference to function template
instantiation 'BOOL CompareElements<KEY,SDataType>(const TYPE *,const
ARG_TYPE *)' being compiled
with
[
KEY=SDataType,
TYPE=SDataType,
ARG_TYPE=SDataType
]
refering to
template<class TYPE, class ARG_TYPE>
BOOL AFXAPI CompareElements(const TYPE* pElement1, const ARG_TYPE*
pElement2)
{
ASSERT(AfxIsValidAddress(pElement1, sizeof(TYPE), FALSE));
ASSERT(AfxIsValidAddress(pElement2, sizeof(ARG_TYPE), FALSE));
return *pElement1 == *pElement2; // this line
}
email: newcomer@xxxxxxxxxxxx
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
.
- References:
- CMap and struct
- From: Vahid
- Re: CMap and struct
- From: Joseph M . Newcomer
- Re: CMap and struct
- From: Vahid
- CMap and struct
- Prev by Date: Re: Custom heap implementation
- Next by Date: Re: File transfer using FTP
- Previous by thread: Re: CMap and struct
- Next by thread: Re: CMap and struct
- Index(es):