X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d2aa096b6fa3d82275c714df05234ad9e52fca7d..47df2b8c540f17c55464719d0da74c0b43a29515:/include/wx/hashmap.h diff --git a/include/wx/hashmap.h b/include/wx/hashmap.h index f2a3f6642e..801a036140 100644 --- a/include/wx/hashmap.h +++ b/include/wx/hashmap.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: hashmap.cpp +// Name: hashmap.h // Purpose: wxHashMap class // Author: Mattia Barbon // Modified by: @@ -16,7 +16,7 @@ #pragma interface "hashmap.h" #endif -#include +#include "wx/string.h" // private struct WXDLLEXPORT _wxHashTable_NodeBase @@ -86,18 +86,18 @@ public: \ /* should these be protected? */ \ typedef const KEY_T const_key_type; \ typedef const VALUE_T const_mapped_type; \ -protected: \ +public: \ struct Node; \ typedef KEY_EX_T key_extractor; \ typedef CLASSNAME Self; \ - \ +protected: \ Node** m_table; \ size_t m_tableBuckets; \ size_t m_items; \ hasher m_hasher; \ key_equal m_equals; \ key_extractor m_getKey; \ - \ +public: \ struct Node:public _wxHashTable_NodeBase \ { \ public: \ @@ -110,12 +110,12 @@ protected: \ \ struct Iterator; \ friend struct Iterator; \ - \ +protected: \ static void DeleteNode( _wxHashTable_NodeBase* node ) \ { \ delete (Node*)node; \ } \ - \ +public: \ /* */ \ /* forward iterator */ \ /* */ \ @@ -363,9 +363,15 @@ public: \ #define _WX_DECLARE_HASH_MAP_KEY_EX( KEY_T, PAIR_T, CLASSNAME, CLASSEXP ) \ CLASSEXP CLASSNAME \ { \ + typedef KEY_T key_type; \ + typedef PAIR_T pair_type; \ + typedef const key_type const_key_type; \ + typedef const pair_type const_pair_type; \ + typedef const_key_type& const_key_reference; \ + typedef const_pair_type& const_pair_reference; \ public: \ CLASSNAME() { } \ - KEY_T operator()( PAIR_T pair ) const { return pair.first; } \ + const_key_reference operator()( const_pair_reference pair ) const { return pair.first; }\ \ /* the dummy assignment operator is needed to suppress compiler */ \ /* warnings from hash table class' operator=(): gcc complains about */ \