listimpl.cpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435
  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/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. // Copyright: (c) 1998 Vadim Zeitlin
  8. // Licence: wxWindows licence
  9. /////////////////////////////////////////////////////////////////////////////
  10. #if wxUSE_STD_CONTAINERS
  11. #undef WX_DEFINE_LIST
  12. #define WX_DEFINE_LIST(name) \
  13. void _WX_LIST_HELPER_##name::DeleteFunction( _WX_LIST_ITEM_TYPE_##name X )\
  14. { \
  15. delete X; \
  16. } \
  17. _WX_LIST_HELPER_##name::BaseListType _WX_LIST_HELPER_##name::EmptyList;
  18. #else // !wxUSE_STD_CONTAINERS
  19. #undef WX_DEFINE_LIST_2
  20. #define WX_DEFINE_LIST_2(T, name) \
  21. void wx##name##Node::DeleteData() \
  22. { \
  23. delete (T *)GetData(); \
  24. }
  25. // redefine the macro so that now it will generate the class implementation
  26. // old value would provoke a compile-time error if this file is not included
  27. #undef WX_DEFINE_LIST
  28. #define WX_DEFINE_LIST(name) WX_DEFINE_LIST_2(_WX_LIST_ITEM_TYPE_##name, name)
  29. #endif // wxUSE_STD_CONTAINERS/!wxUSE_STD_CONTAINERS