From d8eff331e23435d9d8d6483a40f6fd9997a13f87 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 11 Apr 2010 17:38:01 +0000 Subject: [PATCH] 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 --- include/wx/vector.h | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/include/wx/vector.h b/include/wx/vector.h index 3af683621f..982cd08626 100644 --- a/include/wx/vector.h +++ b/include/wx/vector.h @@ -448,22 +448,26 @@ inline typename wxVector::size_type wxVector::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 -int wxCMPFUNC_CONV wxVectorSort_compare(const void* pitem1, const void* pitem2, const void* ) +struct wxVectorSort { - const T& item1 = *reinterpret_cast(pitem1); - const T& item2 = *reinterpret_cast(pitem2); - - if (item1 < item2) - return -1; - else if (item2 < item1) - return 1; - else - return 0; -} + static int wxCMPFUNC_CONV + Compare(const void* pitem1, const void* pitem2, const void* ) + { + const T& item1 = *reinterpret_cast(pitem1); + const T& item2 = *reinterpret_cast(pitem2); + + if (item1 < item2) + return -1; + else if (item2 < item1) + return 1; + else + return 0; + } +}; } // namespace wxPrivate @@ -473,7 +477,7 @@ template void wxVectorSort(wxVector& v) { wxQsort(v.begin(), v.size(), sizeof(T), - wxPrivate::wxVectorSort_compare, NULL); + wxPrivate::wxVectorSort::Compare, NULL); } -- 2.45.2