Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: material.cpp(137) : error C2061: syntax error : identifier 'key'

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.