Using the conversion to T* operator
In the following code fragment, the compiler invokes the T*() operator (because a pointer is required) for the TSwizzle<CClassB> object iB, before calling delete.
CClassABC::~CClassABC()
{
...
if (iB.IsPtr())
delete iB;
}
Using the indirection operator
In the following code fragment, the *() operator returns a reference to the CClassB object represented by the swizzle TSwizzle<CClassB> object, iB.
TStreamId CClassABC::StoreL()
{
...
outstream << *iB;
...
}
Using the indirect component selector
In the following code fragment, the operator -> gives access to the member iFixBuf of the CClassB object which is represented by the TSwizzle<CClassB> swizzle, iB.
void CClassABC::ConstructB(...,...,...,...)
{
iB->iFixBuf = aData;
...
}