Fix link errors with VC 11 in DLL STL build.
Don't declare wxWindowList as DLL-exported. It's unnecessary and appears to create problems for VC 11. Closes #14741. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -148,21 +148,22 @@ inline const void *wxListCastElementToVoidPtr(const wxString& str)
|
|||||||
decl _WX_LIST_HELPER_##liT \
|
decl _WX_LIST_HELPER_##liT \
|
||||||
{ \
|
{ \
|
||||||
typedef elT _WX_LIST_ITEM_TYPE_##liT; \
|
typedef elT _WX_LIST_ITEM_TYPE_##liT; \
|
||||||
|
typedef std::list<elT> BaseListType; \
|
||||||
public: \
|
public: \
|
||||||
|
static BaseListType EmptyList; \
|
||||||
static void DeleteFunction( _WX_LIST_ITEM_TYPE_##liT X ); \
|
static void DeleteFunction( _WX_LIST_ITEM_TYPE_##liT X ); \
|
||||||
}; \
|
}; \
|
||||||
\
|
\
|
||||||
WX_LIST_VC6_WORKAROUND(elT, liT, decl) \
|
WX_LIST_VC6_WORKAROUND(elT, liT, decl) \
|
||||||
decl liT : public std::list<elT> \
|
class liT : public std::list<elT> \
|
||||||
{ \
|
{ \
|
||||||
private: \
|
private: \
|
||||||
typedef std::list<elT> BaseListType; \
|
typedef std::list<elT> BaseListType; \
|
||||||
static BaseListType EmptyList; \
|
|
||||||
\
|
\
|
||||||
bool m_destroy; \
|
bool m_destroy; \
|
||||||
\
|
\
|
||||||
public: \
|
public: \
|
||||||
decl compatibility_iterator \
|
class compatibility_iterator \
|
||||||
{ \
|
{ \
|
||||||
private: \
|
private: \
|
||||||
/* Workaround for broken VC6 nested class name resolution */ \
|
/* Workaround for broken VC6 nested class name resolution */ \
|
||||||
@@ -174,7 +175,7 @@ inline const void *wxListCastElementToVoidPtr(const wxString& str)
|
|||||||
\
|
\
|
||||||
public: \
|
public: \
|
||||||
compatibility_iterator() \
|
compatibility_iterator() \
|
||||||
: m_iter(EmptyList.end()), m_list( NULL ) {} \
|
: m_iter(_WX_LIST_HELPER_##liT::EmptyList.end()), m_list( NULL ) {} \
|
||||||
compatibility_iterator( liT* li, iterator i ) \
|
compatibility_iterator( liT* li, iterator i ) \
|
||||||
: m_iter( i ), m_list( li ) {} \
|
: m_iter( i ), m_list( li ) {} \
|
||||||
compatibility_iterator( const liT* li, iterator i ) \
|
compatibility_iterator( const liT* li, iterator i ) \
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
{ \
|
{ \
|
||||||
delete X; \
|
delete X; \
|
||||||
} \
|
} \
|
||||||
name::BaseListType name::EmptyList;
|
_WX_LIST_HELPER_##name::BaseListType _WX_LIST_HELPER_##name::EmptyList;
|
||||||
|
|
||||||
#else // !wxUSE_STD_CONTAINERS
|
#else // !wxUSE_STD_CONTAINERS
|
||||||
#undef WX_DEFINE_LIST_2
|
#undef WX_DEFINE_LIST_2
|
||||||
|
@@ -54,7 +54,7 @@ class WXDLLIMPEXP_FWD_BASE wxArrayInt;
|
|||||||
class WXDLLIMPEXP_FWD_BASE wxProcess;
|
class WXDLLIMPEXP_FWD_BASE wxProcess;
|
||||||
class WXDLLIMPEXP_FWD_CORE wxFrame;
|
class WXDLLIMPEXP_FWD_CORE wxFrame;
|
||||||
class WXDLLIMPEXP_FWD_CORE wxWindow;
|
class WXDLLIMPEXP_FWD_CORE wxWindow;
|
||||||
class WXDLLIMPEXP_FWD_CORE wxWindowList;
|
class wxWindowList;
|
||||||
class WXDLLIMPEXP_FWD_CORE wxEventLoop;
|
class WXDLLIMPEXP_FWD_CORE wxEventLoop;
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -762,6 +762,6 @@ void _WX_LIST_HELPER_wxStringListBase::DeleteFunction( wxString WXUNUSED(X) )
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
wxStringListBase::BaseListType wxStringListBase::EmptyList;
|
_WX_LIST_HELPER_wxStringListBase::BaseListType _WX_LIST_HELPER_wxStringListBase::EmptyList;
|
||||||
|
|
||||||
#endif // !wxUSE_STD_CONTAINERS
|
#endif // !wxUSE_STD_CONTAINERS
|
||||||
|
Reference in New Issue
Block a user