私は自分自身を教えています。私は、テンプレートに関連する質問に基本的なものがあるかもしれません。例えば、私は現在読んでいる記事は(この記事の一番下を参照してください)次のコードが含まれていますテンプレートの理解D
int foo(int x)
{
return x;
}
string foo(string x)
{
return x;
}
void main()
{
assert(foo(12345) == 12345);
assert(foo("hello") == "hello");
}
は明らかに、この特定のスニペットは、エレガント未満とテンプレートが繰り返しを排除するであろう次のとおりです。
foo(T)(T x)
{
return x;
}
void main()
{
assert(foo!(int)(12345) == 12345);
assert(foo!(string)("hello") == "hello");
}
2番目の例は、渡された値を返すだけなので、基本的です。私の混乱は、テンプレート化されているにも関わらず、関数がのように表示され、文字列と整数値が共通していることを容易に想像することができないためです。したがって、渡される変数の型をチェックし、文字列または整数のケースを別々に処理するコードを記述することをプログラマが期待していますか?大規模な関数本体の作成は本当に効率的ですか?私は、テンプレート作成の不慣れが自明であることを認識しています。そこで、私の質問:)
http://nomad.so/2013/07/templates-in-d-explained/
https://github.com/PhilippeSigaud/D-templates-tutorialでは、Dテンプレートに関する完全な本(無料)を見つけることができます。それは素晴らしい読書です。 – DejanLekic