]>
git.saurik.com Git - wxWidgets.git/blob - docs/doxygen/mainpages/cat_macros.h
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: Macros-by-category page of the Doxygen manual
4 // Author: wxWidgets team
6 // Licence: wxWindows license
7 /////////////////////////////////////////////////////////////////////////////
11 @page page_macro_cat Macros by Category
13 @li @ref page_macro_cat_version
14 @li @ref page_macro_cat_byteorder
15 @li @ref page_macro_cat_rtti
16 @li @ref page_macro_cat_debugging
17 @li @ref page_macro_cat_misc
23 @section page_macro_cat_version Versioning
25 The following constants are defined in wxWidgets:
28 @itemdef{ wxMAJOR_VERSION, The major version of wxWidgets }
29 @itemdef{ wxMINOR_VERSION, The minor version of wxWidgets }
30 @itemdef{ wxRELEASE_NUMBER, The release number }
31 @itemdef{ wxSUBRELEASE_NUMBER, The subrelease number which is 0 for all
35 For example, the values or these constants for wxWidgets 2.8.7
38 Additionally, wxVERSION_STRING is a user-readable string containing the full
39 wxWidgets version and wxVERSION_NUMBER is a combination of the three version
40 numbers above: for 2.1.15, it is 2115 and it is 2200 for wxWidgets 2.2.
42 The subrelease number is only used for the sources in between official releases
43 and so normally is not useful.
48 @li wxCHECK_GCC_VERSION()
49 @li wxCHECK_SUNCC_VERSION()
51 @li wxCHECK_VERSION_FULL()
52 @li wxCHECK_VISUALC_VERSION()
53 @li wxCHECK_W32API_VERSION()
56 @section page_macro_cat_misc Miscellaneous
62 @li wxDYNLIB_FUNCTION()
64 @li wxDEPRECATED_BUT_USED_INTERNALLY()
65 @li wxDEPRECATED_INLINE()
68 @li wxON_BLOCK_EXIT_OBJ()
71 @li wxSUPPRESS_GCC_PRIVATE_DTOR_WARNING()
83 @section page_macro_cat_byteorder Byte Order
87 The endian-ness issues (that is the difference between big-endian and
88 little-endian architectures) are important for the portable programs working
89 with the external binary data (for example, data files or data coming from
90 network) which is usually in some fixed, platform-independent format.
92 The macros are helpful for transforming the data to the correct format.
94 @li wxINTXX_SWAP_ALWAYS()
95 @li wxINTXX_SWAP_ON_BE()
96 @li wxINTXX_SWAP_ON_LE()
97 @li wxFORCE_LINK_THIS_MODULE()
98 @li wxFORCE_LINK_MODULE()
102 @section page_macro_cat_rtti Runtime Type Information (RTTI)
104 wxWidgets uses its own RTTI ("run-time type identification") system which
105 predates the current standard C++ RTTI and so is kept for backwards
106 compatibility reasons but also because it allows some things which the standard
107 RTTI doesn't directly support (such as creating a class from its name). The
108 standard C++ RTTI can be used in the user code without any problems and in
109 general you shouldn't need to use the functions and the macros in this section
110 unless you are thinking of modifying or adding any wxWidgets classes.
112 Related Overviews: @ref overview_rtti
115 @li DECLARE_ABSTRACT_CLASS()
118 @li DECLARE_DYNAMIC_CLASS()
119 @li IMPLEMENT_ABSTRACT_CLASS()
120 @li IMPLEMENT_ABSTRACT_CLASS2()
122 @li IMPLEMENT_CLASS()
123 @li IMPLEMENT_CLASS2()
124 @li IMPLEMENT_DYNAMIC_CLASS()
125 @li IMPLEMENT_DYNAMIC_CLASS2()
127 @li wxCreateDynamicObject()
130 @li wxDynamicCastThis()
133 @li wx_reinterpret_cast()
135 @li wx_truncate_cast()
138 @section page_macro_cat_debugging Debugging
140 Useful macros and functions for error checking and defensive programming.
141 wxWidgets defines three families of the assert-like macros: the wxASSERT and
142 wxFAIL macros only do anything if __WXDEBUG__ is defined (in other words, in
143 the debug build) but disappear completely in the release build. On the other
144 hand, the wxCHECK macros stay event in release builds but a check failure
145 doesn't generate any user-visible effects then. Finally, the compile time
146 assertions don't happen during the run-time but result in the compilation error
147 messages if the condition they check fail.
152 @li wxASSERT_MIN_BITSIZE()
154 @li wxCOMPILE_TIME_ASSERT()
155 @li wxCOMPILE_TIME_ASSERT2()