@{
command is very useful for beautifying very short
definitions of member functions such as constructors. See ATlb
One example in C++ has to do with formal types in templates. Consider the following example:
template <class Type> class A { private: Type *p; }
In order that the class definition be typeset correctly, Type
must be understood to be a reserved word like int, and that is
correctly figured out by the first class command. However,
according to C++, the scope of Type
is local to the class
definition; unfortunately, FWEAVE does not respect that locality and will
always treat Type
as an int from the point of the
class Type
construction to the end of the source code. Thus, one
should use such dummy variables as Type
only as formal template
parameters, never as ordinary variables.