D Language
テンプレート
サーチ…
構文
- テンプレート識別子(TemplateParameterList){...}
- 構造体識別子(TemplateParameterList){...}
- クラス識別子(TemplateParameterList){...}
- 戻り値の型識別子(TemplateParameterList)(ParameterList){...}
- 識別子!(TemplateInvocationList)
1つのテンプレートによる機能
import std.stdio;
T min(T)(in T arg1, in T arg2) {
return arg1 < arg2 ? arg1 : arg2;
}
void main() {
//Automatic type inference
writeln(min(1, 2));
//Explicit type
writeln(min!(ubyte)(1, 2));
//With single type, the parenthesis might be ommited
writeln(min!ubyte(1, 2));
}
テンプレート
テンプレートがで導入することができるtemplate
。関数やクラス、その他の構造体を含めることができます。
template StaticArray(Type, size_t Length) {
class StaticArray {
Type content[Length];
size_t myLength() {
return getLength(this);
}
}
private size_t getLength(StaticArray arr) {
return Length;
}
}
void main() {
StaticArray!(int, 5) arr5 = new StaticArray!(int, 5);
import std.stdio;
writeln(arr5.myLength());
}
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow