Haruyuki Mohri

毛利春幸のブログです。

Delphi コンパイラ Attributes

Delphiコンパイラ属性としてRef,Unsafe,Volatile,Weakなど使えます。

var
  TMyClass = class
  private
    [Ref]       FRef:       TObject;
    [Unsafe]    FUnsafe:    TObject;
    [Volatile]  FVolatile:  TObject;
    [Weak]      FWeak:      TObject;
  end;
属性 内容
Ref 関数に(値ではなく)参照で渡されるように定数の関数パラメータを修飾するために使用
Unsafe 関数の結果を “安全でない” ものとして扱うようにコンパイラに指示
Volatile 別のスレッドにより変更される可能性があるフィールドにマークを付けて、そのフィールドの値をレジスタまたは別の一時メモリ領域にコピーする操作がコード生成の際に最適化されないようにするために使用
Weak 宣言が弱い参照

UnsafeとWeakはARCのみ有効だが属性としては非ARCにも付いている。