just to write
\begin{verbatim}
-WX_DEFINE_ARRAY(MyDirectory *, ArrayOfDirectories);
-WX_DEFINE_SORTED_ARRAY(MyFile *, ArrayOfFiles);
+WX_DEFINE_ARRAY(int, ArrayOfDirectories);
+WX_DEFINE_SORTED_ARRAY(int, ArrayOfFiles);
\end{verbatim}
+i.e. there is only one {\tt DEFINE} macro and no need for separate
+{\tt DECLARE} one.
+
+
\wxheading{See also:}
\helpref{Container classes overview}{wxcontaineroverview}, \helpref{wxList}{wxlist}
\helpref{WX\_DEFINE\_EXPORTED\_OBJARRAY}{wxdefineobjarray}\\
\helpref{WX\_DEFINE\_USER\_EXPORTED\_OBJARRAY}{wxdefineobjarray}
+To slightly complicate the matters even further, the operator $->$ defined by
+default for the array iterators by these macros only makes sense if the array
+element type is not a pointer itself and, although it still works, this
+provokes warnings from some compilers and to avoid them you should use the
+{\tt \_PTR} versions of the macros above. For example, to define an array of
+pointers to {\tt double} you should use
+
+\begin{verbatim}
+WX_DEFINE_ARRAY_PTR(double *, MyArrayOfDoublePointers);
+\end{verbatim}
+
\membersection{Constructors and destructors}
Array classes are 100\% C++ objects and as such they have the appropriate copy
\begin{verbatim}
class MyClass;
-WX_DEFINE_OBJARRAY(MyClass, wxArrayOfMyClass); // note: not "MyClass *"!
+WX_DECLARE_OBJARRAY(MyClass, wxArrayOfMyClass); // note: not "MyClass *"!
\end{verbatim}
You must use \helpref{WX\_DEFINE\_OBJARRAY()}{wxdefineobjarray} macro to define