X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8142d70447fc341df26c2b643028106d4103f7a2..1a18887b88e2ba064154ae5998db7b7533f6bb78:/include/wx/hashset.h diff --git a/include/wx/hashset.h b/include/wx/hashset.h index 4e40bb7698..3cc80a8f5d 100644 --- a/include/wx/hashset.h +++ b/include/wx/hashset.h @@ -14,6 +14,19 @@ #include "wx/hashmap.h" +#if wxUSE_STL && defined(HAVE_STL_HASH_MAP) + +#if defined(HAVE_EXT_HASH_MAP) + #include +#elif defined(HAVE_HASH_MAP) + #include +#endif + +#define _WX_DECLARE_HASH_SET( KEY_T, HASH_T, KEY_EQ_T, CLASSNAME, CLASSEXP )\ + typedef WX_HASH_MAP_NAMESPACE::hash_set< KEY_T, HASH_T, KEY_EQ_T > CLASSNAME; + +#else // !wxUSE_STL || !defined(HAVE_STL_HASH_MAP) + // this is a complex way of defining an easily inlineable identity function... #define _WX_DECLARE_HASH_SET_KEY_EX( KEY_T, CLASSNAME, CLASSEXP ) \ CLASSEXP CLASSNAME \ @@ -38,8 +51,8 @@ _WX_DECLARE_HASHTABLE( KEY_T, KEY_T, HASH_T, CLASSNAME##_wxImplementation_KeyEx, CLASSEXP CLASSNAME:public CLASSNAME##_wxImplementation_HashTable \ { \ public: \ - CLASSNAME( size_type hint = 100, hasher hf = hasher(), \ - key_equal eq = key_equal() ) \ + wxEXPLICIT CLASSNAME( size_type hint = 100, hasher hf = hasher(), \ + key_equal eq = key_equal() ) \ : CLASSNAME##_wxImplementation_HashTable( hint, hf, eq, \ CLASSNAME##_wxImplementation_KeyEx() ) {} \ \ @@ -68,6 +81,8 @@ public: \ { return GetNode( key ) ? 1 : 0; } \ } +#endif // !wxUSE_STL || !defined(HAVE_STL_HASH_MAP) + // these macros are to be used in the user code #define WX_DECLARE_HASH_SET( KEY_T, HASH_T, KEY_EQ_T, CLASSNAME) \ _WX_DECLARE_HASH_SET( KEY_T, HASH_T, KEY_EQ_T, CLASSNAME, class )