Listing 5 Applying the rewriting rule literally to class X and function f (from Listing 3) changes f's semantics.

void f()
       {
       class X
              {
       public:
              X(int i) { n = i; }
              operator int() { return n; }
              // ...
       private:
              int n;
              // ...
              };
       // ...
       }
// End of File