Index: doc/uC++toCFA/uC++toCFA.tex
===================================================================
--- doc/uC++toCFA/uC++toCFA.tex	(revision 06ffa958c2cbd678e3ccc85025b02513968da3d4)
+++ doc/uC++toCFA/uC++toCFA.tex	(revision 8617ee90de06f87845137983052bf94f92299eff)
@@ -11,6 +11,6 @@
 %% Created On       : Wed Apr  6 14:53:29 2016
 %% Last Modified By : Peter A. Buhr
-%% Last Modified On : Sat Feb  1 12:36:30 2025
-%% Update Count     : 6285
+%% Last Modified On : Sat Mar 15 13:38:53 2025
+%% Update Count     : 6302
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -397,8 +397,10 @@
 struct S {
 	int i, j;
-
+	@S@() { i = j = 3; }
 	@S@( int i, int j ) { S::i = i; S::j = j; }
+	@S@( const S & s ) { *this = s; }
 	@~S@() {}
 };
+S s0;
 S s1 = { 1, 2 };
 
@@ -415,10 +417,12 @@
 \begin{cfa}
 #include <stdlib.hfa> // new (malloc)
-struct S {
-	int i, j;
-};
-void @?{}@( S & s, int i, int j ) { s.i = i; s.j = j; }
-void @^?{}@( S & s ) { s.i = 0; s.j = 0; }	
-
+struct S { int i, j; };
+
+void @?{}@( S & s ) { s.i = s.j = 3; } $\C[3in]{// default}$
+void @?{}@( S & s, int i, int j ) { s.i = i; s.j = j; } $\C{// initializer}$
+void @?{}@( S & s, const S rhs ) { s.[i,j] = rhs.[i,j]; } $\C{// copy}$
+void @^?{}@( S & s ) { s.i = 0; s.j = 0; } $\C{// destructor}\CRT$
+
+S s0;
 S s1 = { 1, 2 };
 // cannot use 0/1 (zero_t/one_t) with "new"
@@ -428,7 +432,7 @@
 delete( s2 );
 S & s3 = *new( 1n, 2 );
-delete( s3 );
+delete( &s3 );
 &s3 = &*new( 1n, 2 );
-delete( s3 );
+delete( &s3 );
 \end{cfa}
 \end{tabular}
