So I can use generics and Variants, Hash table classes are based on virtual function overloading and 'absolute' parameters.
In next release will be added hash tables.
I want not use generics because old Delphi not support it (delphi<2009) it is matter of compatibility with old Delphi.
My classes will support various kind of key and values - one requirement: sizeof type must be 32 bit. As a key/value can be integers,Ansi strings and Unicode strings.
For utf8 strings use AnsiStrings - in case sensitive mode; for case insensitive mode use Unicode strings for performance issues.
Also I am planning bidirectional hash table, instead key,value - two keys, first and second key.
Variants falls, are not suitable because I tested it and hashes with variants are terrible slow.
Different types of hashes will be based on inheritance. Must be one class for each combination of key,value - (integer,integer)(integer,AnsiString),..(AnsiString,integer),(WideString,integer) etc