Author: P L Patodia
Date: 06:09:05 06/22/05
Go up one level in this thread
On June 22, 2005 at 07:42:53, Andrey Popov wrote:
>On June 22, 2005 at 05:49:49, milix wrote:
>
>>On June 22, 2005 at 05:39:13, Andrey Popov wrote:
>>
>>>When I tried to compile Fruit 2.1, I found the following error:
>>>c:\frusrc\material.cpp(137) : error C2061: syntax error : identifier 'key'
>>>c:\frusrc\material.cpp(137) : error C2066: cast to function type is illegal
>>>c:\frusrc\material.cpp(137) : error C2107: illegal index, indirection not
>>>allowed
>>>c:\frusrc\material.cpp(137) : error C2102: '&' requires l-value
>>>
>>>in the following function:
>>>
>>>void material_get_info(material_info_t * info, const board_t * board) {
>>>
>>> uint64 key;
>>> entry_t * entry;
>>>
>>> ASSERT(info!=NULL);
>>> ASSERT(board!=NULL);
>>>
>>> // probe
>>>
>>> if (UseTable) {
>>>
>>> Material->read_nb++;
>>>
>>> key = board->material_key;
>>> entry = &Material->table[KEY_INDEX(key)&Material->mask];//error line 137
>>>
>>> if (entry->lock == KEY_LOCK(key)) {
>>>
>>> // found
>>>
>>> Material->read_hit++;
>>>
>>> *info = *entry;
>>>
>>> return;
>>> }
>>> }
>>>What is the reason and how to avoid this error?
>>
>>What is the definition of the (macro?) KEY_INDEX?
>
>#define KEY_INDEX(key) (uint32(key))
>
>This definition is in "hash.h" file.
Change the definition as follows:
#define KEY_INDEX(key) ((uint32)(key))
I hope it should work.
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.