When wxUSE_STL == 1 and STL provides quasi-standard hash_map/hash_set,

wxHashMap/wxHashSet are just typedefs for them. This makes impossible
to forward declare these classes.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27182 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Mattia Barbon
2004-05-08 20:20:24 +00:00
parent 11e720751c
commit bdcade0a10
16 changed files with 5363 additions and 1925 deletions

View File

@@ -14,6 +14,19 @@
#include "wx/hashmap.h"
#if wxUSE_STL && defined(HAVE_STL_HASH_MAP)
#if defined(HAVE_EXT_HASH_MAP)
#include <ext/hash_set>
#elif defined(HAVE_HASH_MAP)
#include <hash_set>
#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 \
@@ -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 )