Use template class instead of template function in wxVectorSort().

This allows the code to compile with VC6 which has trouble with explicit
specification of the template functions instantiation.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2010-04-11 17:38:01 +00:00
parent 5caf524dff
commit d8eff331e2

View File

@@ -448,11 +448,14 @@ inline typename wxVector<T>::size_type wxVector<T>::erase(size_type n)
namespace wxPrivate
{
// This function is a helper for the wxVectorSort function, and should
// not be used directly in user's code.
// This is a helper for the wxVectorSort function, and should not be used
// directly in user's code.
template<typename T>
int wxCMPFUNC_CONV wxVectorSort_compare(const void* pitem1, const void* pitem2, const void* )
struct wxVectorSort
{
static int wxCMPFUNC_CONV
Compare(const void* pitem1, const void* pitem2, const void* )
{
const T& item1 = *reinterpret_cast<const T*>(pitem1);
const T& item2 = *reinterpret_cast<const T*>(pitem2);
@@ -464,6 +467,7 @@ int wxCMPFUNC_CONV wxVectorSort_compare(const void* pitem1, const void* pitem2,
else
return 0;
}
};
} // namespace wxPrivate
@@ -473,7 +477,7 @@ template<typename T>
void wxVectorSort(wxVector<T>& v)
{
wxQsort(v.begin(), v.size(), sizeof(T),
wxPrivate::wxVectorSort_compare<T>, NULL);
wxPrivate::wxVectorSort<T>::Compare, NULL);
}