Fix building with wxUSE_STL enabled in VS2019 16.6
Exporting standard C++ library types is not allowed any more, see https://developercommunity.visualstudio.com/content/problem/1042081/142628801includexhash201332-error-c2338-this-funct.html so don't use DLL export declarations for wxHash{Map,Set} classes, which derive from std::{map,set}. Since the classes are header-only, this should have no direct consequences. Only classes that extend wxHashMap or wxHashSet, like wxImageHistogram, have to be made header only as well. Remove the wxLogError message in wxImageHistogram::FindFirstUnusedColour, so log.h and translation.h do not have to be included in the header. Closes https://github.com/wxWidgets/wxWidgets/pull/2009
This commit is contained in:
committed by
Vadim Zeitlin
parent
5aa1f4e953
commit
590e32c60b
@@ -678,24 +678,27 @@ public: \
|
||||
|
||||
// and these do exactly the same thing but should be used inside the
|
||||
// library
|
||||
// note: DECL is not used since the class is inline
|
||||
#define WX_DECLARE_HASH_MAP_WITH_DECL( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME, DECL) \
|
||||
_WX_DECLARE_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME, DECL )
|
||||
_WX_DECLARE_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME, class )
|
||||
|
||||
#define WX_DECLARE_EXPORTED_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME) \
|
||||
WX_DECLARE_HASH_MAP_WITH_DECL( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, \
|
||||
CLASSNAME, class WXDLLIMPEXP_CORE )
|
||||
|
||||
// note: DECL is not used since the class is inline
|
||||
#define WX_DECLARE_STRING_HASH_MAP_WITH_DECL( VALUE_T, CLASSNAME, DECL ) \
|
||||
_WX_DECLARE_HASH_MAP( wxString, VALUE_T, wxStringHash, wxStringEqual, \
|
||||
CLASSNAME, DECL )
|
||||
CLASSNAME, class )
|
||||
|
||||
#define WX_DECLARE_EXPORTED_STRING_HASH_MAP( VALUE_T, CLASSNAME ) \
|
||||
WX_DECLARE_STRING_HASH_MAP_WITH_DECL( VALUE_T, CLASSNAME, \
|
||||
class WXDLLIMPEXP_CORE )
|
||||
|
||||
// note: DECL is not used since the class is inline
|
||||
#define WX_DECLARE_VOIDPTR_HASH_MAP_WITH_DECL( VALUE_T, CLASSNAME, DECL ) \
|
||||
_WX_DECLARE_HASH_MAP( void*, VALUE_T, wxPointerHash, wxPointerEqual, \
|
||||
CLASSNAME, DECL )
|
||||
CLASSNAME, class )
|
||||
|
||||
#define WX_DECLARE_EXPORTED_VOIDPTR_HASH_MAP( VALUE_T, CLASSNAME ) \
|
||||
WX_DECLARE_VOIDPTR_HASH_MAP_WITH_DECL( VALUE_T, CLASSNAME, \
|
||||
|
Reference in New Issue
Block a user