\end{describe}
\begin{describe}[SOD_OFFSETDIFF]{mac}
- {ptrdiff_t SOD_OFFSETDIFF(@<type>, @<member>_1, @<member>_2)}
+ {ptrdiff_t SOD_OFFSETDIFF(@<type>, @<member>_1, @<member>_2);}
Returns the signed offset between two members of a structure or union type.
Given a structure or union type @<type>, and two member names @<member>_1
\end{describe}
\begin{describe}[SOD_ILAYOUT]{mac}
- {@<cls>{}__ilayout *SOD_ILAYOUT(@<cls>, @<chead>, const void *@<obj>)}
+ {@<cls>{}__ilayout *SOD_ILAYOUT(@<cls>, @<chead>, const void *@<obj>);}
Recovers the instance layout base address from a pointer to one of its
instance chains.
@|SOD_INSTBASE| macro (described below) is more suited to general use.
\end{describe}
-\begin{describe}[SOD_CAR]{mac} {@<arg> SOD_CAR(@<arg>, @<other-arg>^*)}
- Accepts one or more arguments and expands to just its first argument,
- discarding the others.
-
- It is only defined if the C implementation advertises support for C99. It
- is used in the definitions of message convenience macros for messages which
- accept a variable number of arguments but no required arguments, and is
- exported because the author has found such a thing useful in other
- contexts.
-\end{describe}
-
%%%--------------------------------------------------------------------------
\section{Utility macros} \label{sec:runtime.utility}
client code.
\begin{describe}[SOD_CLASSOF]{mac}
- {const void *SOD_CLASSOF(const @<cls> *@<obj>)}
+ {const void *SOD_CLASSOF(const @<cls> *@<obj>);}
Returns the class object describing an instance's dynamic class.
Given a pointer @<obj> to an instance, @|SOD_CLASSOF| returns a pointer to
\end{describe}
\begin{describe}[SOD_CONVERT]{mac}
- {@<cls> *SOD_CONVERT(@<cls>, const void *@<obj>)}
+ {@<cls> *SOD_CONVERT(@<cls>, const void *@<obj>);}
Perform general conversions (up-, down-, and cross-casts) on instance
pointers.
statically.
\end{describe}
-\begin{describe}[SOD_DECL]{mac}{SOD_DECL(@<cls>, @<var>)}
+\begin{describe}[SOD_DECL]{mac}{SOD_DECL(@<cls>, @<var>);}
Declares and initializes an instance with automatic storage duration.
Given a class name @<cls> and an identifier @<var>, @|SOD_DECL| declares
The following functions are provided in @|libsod|.
\begin{describe}[sod_subclassp]{fun}
- {int sod_subclassp(const SodClass *sub, const SodClass *super)}
+ {int sod_subclassp(const SodClass *@<sub>, const SodClass *@<super>);}
Decide whether one class @<sub> is actually a subclass of another class
@<super>.
\end{describe}
\begin{describe}[sod_convert]{fun}
- {void *sod_convert(const SodClass *cls, const void *obj)}
+ {void *sod_convert(const SodClass *@<cls>, const void *@<obj>);}
Performs general conversions (up-, down-, and cross-casts) on instance
pointers.