{ %NORUN } {$MODE DELPHI} type TSmartPtr<T: class> = record class operator Implicit(aValue: T): TSmartPtr<T>; end; class operator TSmartPtr<T>.Implicit(aValue: T): TSmartPtr<T>; begin end; var sp: TSmartPtr<TObject>; begin sp := nil; end.