along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-
#if !defined(TT_H_INCLUDED)
#define TT_H_INCLUDED
#include <iostream>
-#include "depth.h"
#include "move.h"
-#include "value.h"
-
-
-////
-//// Types
-////
-
+#include "types.h"
/// A simple fixed size hash table used to store pawns and material
/// configurations. It is basically just an array of Entry objects.
public:
SimpleHash() {
- entries = new Entry[HashSize];
+ entries = new (std::nothrow) Entry[HashSize];
if (!entries)
{
std::cerr << "Failed to allocate " << HashSize * sizeof(Entry)
memset(entries, 0, HashSize * sizeof(Entry));
}
- ~SimpleHash() { delete [] entries; }
+ virtual ~SimpleHash() { delete [] entries; }
Entry* find(Key key) const { return entries + ((uint32_t)key & (HashSize - 1)); }