.
.\"----- Licensing notice ---------------------------------------------------
.\"
-.\" This file is part of the Sensble Object Design, an object system for C.
+.\" This file is part of the Sensible Object Design, an object system for C.
.\"
.\" SOD is free software; you can redistribute it and/or modify
-.\" it under the terms of the GNU General Public License as published by
-.\" the Free Software Foundation; either version 2 of the License, or
-.\" (at your option) any later version.
+.\" it under the terms of the GNU Library General Public License as
+.\" published by the Free Software Foundation; either version 2 of the
+.\" License, or (at your option) any later version.
.\"
.\" SOD is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.\" GNU General Public License for more details.
+.\" GNU Library General Public License for more details.
.\"
-.\" You should have received a copy of the GNU General Public License
-.\" along with SOD; if not, write to the Free Software Foundation,
-.\" Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+.\" You should have received a copy of the GNU Library General Public
+.\" License along with SOD; if not, write to the Free
+.\" Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+.\" MA 02111-1307, USA.
.
+.\" Highlight using terminal escapes, rather than overstriking.
.\"\X'tty: sgr 1'
+.
.\" String definitions and font selection.
.ie t \{\
. ds o \(bu
A pointer to a function:
given a pointer
.I p
-to at least
-.I initsz
-bytes of appropriately aligned memory,
-initialize an instance of the class in it:
-all of the vtable and class pointers are initialized,
-as are slots for which initializers are defined.
+to an imprinted instance,
+initialize all of its slots for which initializers are defined.
Other slots are left untouched.
The function returns its argument
.IR p .
.IB an ,
.B ...);
.PP
+or a standard message which takes keyword arguments,
+defined as
+.IP
+.I tr
+.IB m ( \c
+.I t1
+.IB a1 ,
+.RB ... ,
+.I tn
+.IB an ?\&
+.IR tn +1
+.IR kn +1
+.RB [ =
+.IR dn +1] \c
+.B ,
+.I tm
+.I km
+.RB [ =
+.IR dm ] \c
+);
+.PP
two entry points are defined:
the usual `main' entry point
which accepts a variable number of
and a `valist' entry point
which accepts an argument of type
.B va_list
-in place of the variable portion of the argument list.
+in place of the variable portion of the argument list
+or keywords.
.IP
.I tr
.BI (* m )( \c
If
.I m
takes a variable number of arguments,
+or keyword arguments,
the macro is more complicated
and is only available in compilers advertising C99 support,
but the effect is the same.