1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: listimpl.cpp 3 // Purpose: second-part of macro based implementation of template lists 4 // Author: Vadim Zeitlin 5 // Modified by: 6 // Created: 16/11/98 7 // RCS-ID: $Id: listimpl.cpp 38893 2006-04-24 17:59:10Z VZ $ 8 // Copyright: (c) 1998 Vadim Zeitlin 9 // Licence: wxWindows licence 10 ///////////////////////////////////////////////////////////////////////////// 11 12 #if wxUSE_STL 13 14 #undef WX_DEFINE_LIST 15 #define WX_DEFINE_LIST(name) \ 16 void _WX_LIST_HELPER_##name::DeleteFunction( _WX_LIST_ITEM_TYPE_##name X )\ 17 { \ 18 delete X; \ 19 } \ 20 name::BaseListType name::EmptyList; 21 22 #else // !wxUSE_STL 23 24 #define _DEFINE_LIST(T, name) \ 25 void wx##name##Node::DeleteData() \ 26 { \ 27 delete (T *)GetData(); \ 28 } 29 30 // redefine the macro so that now it will generate the class implementation 31 // old value would provoke a compile-time error if this file is not included 32 #undef WX_DEFINE_LIST 33 #define WX_DEFINE_LIST(name) _DEFINE_LIST(_WX_LIST_ITEM_TYPE_##name, name) 34 35 // don't pollute preprocessor's name space 36 //#undef _DEFINE_LIST 37 38 #endif // wxUSE_STL/!wxUSE_STL 39 40