D 1.0   D 2.0
About Japanese Translation

Last update Tue Nov 27 20:25:04 2007

std.traits

コンパイル時に 型の情報を取り出すためのテンプレートです。

template ReturnType(alias dg)
関数か、関数ポインタ から返値の型を取得します。

Example:
 import std.traits;
 int foo();
 ReturnType!(foo) x;   // x は int 型


template ParameterTypeTuple(alias dg)
template ParameterTypeTuple(dg)
関数か、関数ポインタ、あるいはデリゲートから 引数の型をタプルとして取得します。

Example:
 import std.traits;
 int foo(int, long);
 void bar(ParameterTypeTuple!(foo));      // void bar(int, long); の宣言
 void abc(ParameterTypeTuple!(foo)[1]);   // void abc(long); の宣言


template FieldTypeTuple(S)
構造体かクラスをフィールドのタプルに変換したときの型を取得します。 これは、仮想関数テーブルへのポインタのような隠しフィールドを除いた、 メモリ空間を消費するフィールドのみで構成される タプルとなります。

template BaseTypeTuple(A)
指定したクラスやインターフェイスの基底型と基底インターフェイスからなる 型タプルを返します。

Example:
 import std.traits, std.typetuple, std.stdio;
 interface I { }
 class A { }
 class B : A, I { }

 void main()
 {
     alias BaseTypeTuple!(B) TL;
     writefln(typeid(TL));	// (A,I) を表示
 }




template isStaticArray(T)
Tが静的配列かどうかを判定します。

template isAssociativeArray(T)
T が組み込みの連想配列型かどうかを判定します。

template isExpressionTuple(T...)
タプル T が式タプルかどうか判定