};
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+/**
+ C99-like sized MIN/MAX constants for all integer types.
+
+ For each @c n in the set 8, 16, 32, 64 we define @c wxINTn_MIN, @c
+ wxINTn_MAX and @c wxUINTc_MAX (@c wxUINTc_MIN is always 0 and so is not
+ defined).
+ */
+//@{
+#define wxINT8_MIN CHAR_MIN
+#define wxINT8_MAX CHAR_MAX
+#define wxUINT8_MAX UCHAR_MAX
+
+#define wxINT16_MIN SHRT_MIN
+#define wxINT16_MAX SHRT_MAX
+#define wxUINT16_MAX USHRT_MAX
+
+#define wxINT32_MIN INT_MIN-or-LONG_MIN
+#define wxINT32_MAX INT_MAX-or-LONG_MAX
+#define wxUINT32_MAX UINT_MAX-or-LONG_MAX
+
+#define wxINT64_MIN LLONG_MIN
+#define wxINT64_MAX LLONG_MAX
+#define wxUINT64_MAX ULLONG_MAX
+//@}
// ----------------------------------------------------------------------------
// types
In such case, this macro can be used to disable the automatic assignment
operator generation.
- @see DECLARE_NO_COPY_CLASS()
+ @see wxDECLARE_NO_COPY_CLASS()
*/
-#define DECLARE_NO_ASSIGN_CLASS(classname)
+#define wxDECLARE_NO_ASSIGN_CLASS(classname)
/**
This macro can be used in a class declaration to disable the generation of
private:
// widgets can't be copied
- DECLARE_NO_COPY_CLASS(FooWidget)
+ wxDECLARE_NO_COPY_CLASS(FooWidget);
};
@endcode
- Notice that a semicolon should not be used after this macro and that it
- changes the access specifier to private internally so it is better to use
- it at the end of the class declaration.
+ Notice that a semicolon must be used after this macro and that it changes
+ the access specifier to private internally so it is better to use it at the
+ end of the class declaration.
+
+ @see wxDECLARE_NO_ASSIGN_CLASS(), wxDECLARE_NO_COPY_TEMPLATE_CLASS()
*/
-#define DECLARE_NO_COPY_CLASS(classname)
+#define wxDECLARE_NO_COPY_CLASS(classname)
/**
- Equivalent of DECLARE_NO_COPY_CLASS() for template classes.
+ Analog of wxDECLARE_NO_COPY_CLASS() for template classes.
This macro can be used for template classes (with a single template
- parameter) for the same purpose as DECLARE_NO_COPY_CLASS() is used with the
+ parameter) for the same purpose as wxDECLARE_NO_COPY_CLASS() is used with the
non-template classes.
@param classname The name of the template class.
@param arg The name of the template parameter.
+
+ @see wxDECLARE_NO_COPY_TEMPLATE_CLASS_2
+ */
+#define wxDECLARE_NO_COPY_TEMPLATE_CLASS(classname, arg)
+
+/**
+ Analog of wxDECLARE_NO_COPY_TEMPLATE_CLASS() for templates with 2
+ parameters.
+
+ This macro can be used for template classes with two template
+ parameters for the same purpose as wxDECLARE_NO_COPY_CLASS() is used with
+ the non-template classes.
+
+ @param classname The name of the template class.
+ @param arg1 The name of the first template parameter.
+ @param arg2 The name of the second template parameter.
+
+ @see wxDECLARE_NO_COPY_TEMPLATE_CLASS
*/
-#define DECLARE_NO_COPY_TEMPLATE_CLASS(classname, arg)
+#define wxDECLARE_NO_COPY_TEMPLATE_CLASS_2(classname, arg1, arg2)
/**
A function which deletes and nulls the pointer.
public:
// OldMethod() is deprecated, use NewMethod() instead
void NewMethod();
- wxDEPRECATED_INLINE( void OldMethod(), NewMethod() );
+ wxDEPRECATED_INLINE( void OldMethod(), NewMethod(); )
};
@endcode
*/
#define wxDEPRECATED_INLINE(func, body)
+/**
+ A helper macro allowing to easily define a simple deprecated accessor.
+
+ Compared to wxDEPRECATED_INLINE() it saves a @c return statement and,
+ especially, a strangely looking semicolon inside a macro.
+
+ Example of use
+ @code
+ class wxFoo
+ {
+ public:
+ int GetValue() const { return m_value; }
+
+ // this one is deprecated because it was erroneously non-const
+ wxDEPRECATED_ACCESSOR( int GetValue(), m_value )
+
+ private:
+ int m_value;
+ };
+ @endcode
+ */
+#define wxDEPRECATED_ACCESSOR(func, what)
+
+/**
+ Combination of wxDEPRECATED_BUT_USED_INTERNALLY() and wxDEPRECATED_INLINE().
+
+ This macro should be used for deprecated functions called by the library
+ itself (usually for backwards compatibility reasons) and which are defined
+ inline.
+
+ @header{wx/defs.h}
+*/
+#define wxDEPRECATED_BUT_USED_INTERNALLY_INLINE(func, body)
+
/**
@c wxEXPLICIT is a macro which expands to the C++ @c explicit keyword if
the compiler supports it or nothing otherwise. Thus, it can be used even in