私は速記でDテンプレートのすべての彼の例を書いた教授を持っています。誰かがそれを説明することができますか?誰かがD言語のテンプレート短縮形を説明できますか?</p> <pre><code>T exec(alias f,T)(T t) { return f(t); } </code></pre> <p>私はこれが何を意味するのかを説明任意の例を見つけることができません:
答えて
関数テンプレートでは、最初の括弧のセットはテンプレート引数を保持し、2番目のセットは関数の引数を保持します。
http://dlang.org/template.html#function-templates
あなたはようことを書き換えることができます:テンプレートメンバーはテンプレート自体と同じ名前を持つ場合
template exec(alias f, T) {
T exec(T t) {
return f(t);
}
}
の利用時点で、あなたはそれを2回記述する必要はありません。これは、シノミクストリックと呼ばれています。 http://www.bing.com/search?q=eponymous+trick+d+programming+language&qs=n&form=QBRE&pq=eponymous+trick+d+programming+languag&sc=0-0&sp=-1&sk=
私が見てきたほとんどのDコードは短い形式を使用していますが、長いテンプレート構文は関数、クラス、または構造体ではまれです。struct Foo(T){}は構造体テンプレートです
このexecテンプレートの引数そのものは、関数名や変数名や "T"などの一般的な型など、渡すことを決めたシンボルである "エイリアスf"です。繰り返されるTは、その型への参照です。
利用ポイントで、あなたが最も可能性が高い。このようにそれが表示されます:
int foo(int a) { return a; } // just a regular function
exec!(foo)(10); // instantiates the template with arguments (foo, int), and then calls the function.
ここでは、関数の引数によって暗黙的に考え出している2番目のテンプレート引数。これは関数テンプレートでよく見られます。多くのテンプレート引数は暗黙的なものなので、書かれていることはめったにありません。これは、Dの議論で「暗黙の関数テンプレートのインスタンス化」を意味する「IFTI」として参照されることがあります。
T exec(alias f,T)(T t) {
return f(t);
}
ここに簡略化されたテンプレート機能があります。それを書くために«通常の方法»は、次のとおりです。D
で
template exec(alias f, T) {
T exec(T t) {
return f(t);
}
}
、テンプレートのスコープ内のシンボルは、同じ名前を持つ場合、テンプレート自体が持っている、あなたは(それはみかんのエイリアスです)テンプレートとして使用することができます。
次に、alias
テンプレートパラメータは、何でもよいことを意味します。シンボルです。ここでは、デリゲート、関数、フォンター、何でも構いません。あなたの先生がstd.functional.unaryFun
を使っていれば、それは文字列でもあります。
T
パラメータは、C++と同様に、単なる型シンボルです。
この関数はファンクタを適用するだけです。ここでは最強バージョンです:
https://github.com/D-Programming-Language/phobos/blob/master/std/functional.d#L39
「ファンクター」ではなく「ファンクター」です。 "func"は関数からのものです。 –
- 1. このdatabase.ymlファイルの&、<<、*は何を意味しますか?
- 2. <Tは何を意味するのですか?
- 3. Scalaでは<:<が意味することは何ですか?
- 4. スクリプトがあなたの何を意味するか、シート<strong>キー</strong>に見つけることができますステップバイステップここで
- 5. public T GetMyClass <T>()T:MyClass、new(){/ *は無意味ですか? * /}
- 6. 誰かがこのSystem.ArgumentExceptionエラーの意味を説明できますか?
- 7. X X(t ...)は、vexing parseを使用して関数宣言を実行できますか?私はそれを見ていたとき、私は</p> <pre><code>template<typename ...T> void f(T ...t) { X x(t...); // ... } </code></pre> <p>として関数テンプレートを書いていた
- 8. Java演算子<< =を誰が説明できますか? ;</p> <p>一方(容量< InitialCapacityの値) 容量= 1 < <:ジャワのHashMapのソースコードに見て、私は以下のいくつかのコードを参照
- 9. THREE.Camera.prototype.lookAt</ <() -</ <はどういう意味ですか?
- 10. cakephpの - コントローラは、これが</p> <pre><code>Error: [MissingControllerException] Controller class CssController could not be found. </code></pre> <p>任意の提案を何を意味するのか疑問に思う...私はこのエラーを得続ける
- 11. エラーC2440:「=」:「にListNode <T> *」から変換することはできません「ListNode <T> *」
- 12. "<<< CSSを" このPHPコードを説明してください
- 13. コンパイル後にFunc <T, bool>と述語<T>が同じことはありませんか?
- 14. スカラ:ここ</p> <pre class="lang-py prettyprint-override"><code>def f((a, b)): return a + b d = (1, 2) f(d) </code></pre> <p>タプルに渡されては<code>f</code>に渡されながら分解されている:私はこれを行うことができますPythonで
- 15. SomeList <T>:リスト<T>としてリスト<T>をキャストできません。
- 16. Scalamock私は、</p> <pre><code>public boolean isInfoEnabled(Marker marker); public boolean isInfoEnabled(); </code></pre> <p>がマーカーをとる関数をモックするにscalamockの例では引数を取りませんオーバーロードされたメソッドを1にすることができますモックする方法を説明します任意のドキュメントを見つけることができませんでした
- 17. ツリーノード<T>の、について説明
- 18. 内部リスト<T>をIEnumerable <T>またはICollection <T>として返すことができますか?
- 19. は私が頻繁に私はこのようなことのための方法が記述されていることをこれを行うフォーム</p> <pre><code>t -> { // do something to t return t; } </code></pre> <p>を取る<code>Function</code>インタフェースのための機能
- 20. CodeWars:永続的なバガー。私は、なぜ、誰が助けることができますしてくださいわからない</p> <pre><code>Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 </code></pre> <p>:説明+アドバイス
- 21. JavaScriptでタグ<< =の意味は何ですか?
- 22. Collections.sort()の宣言:</p> <pre><code>public static <T extends Comparable<? super T>> void sort(List<T> list) </code></pre> <p>及びません:<? super T>ではなく<T>
- 23. <E>は、コレクション<E>の意味は何ですか?
- 24. Pythonで `six.moves import urllib`は何をしますか?</p> <pre><code>from six.moves import urllib </code></pre> <p>同時に、私はどこでも<code>urllib.py</code>を見つけることができます:
- 25. はCtrl + Tを使用すると、クラスを表示するためにクリックすることができますので、我々はこのクラスが表示されます<kbd>はCtrl +</kbd><kbd>T</kbd></p> <p>をクリックすることができますReSharperの持つクラス
- 26. 誰かがこの正規表現を説明できますか?
- 27. << Rubyの意味
- 28. C#:IOrderedEnumerable <T>を返すことはできますか?
- 29. Hartl's Railsチュートリアルでは、テキストエリアのCSSは何を指していますか?</p> <pre><code>textarea {resize: vertical;} </code></pre> <p>が、私はどこにでもHTML内の任意のtextareaタグを見つけることができません:セクション5.1.2で
- 30. Cマクロ内の#xは何を意味しますか?</p> <pre><code>#define PRINT(int) printf(#int "%d\n",int) </code></pre> <p>私はちょっと結果が何であるかを知っている:例えば
ダンは、あなたがDに書い教授を持っています!コール! – Mehrdad
はい、彼は入門コースとしてDの教授法を唱えてくれた長い論文を書いています(今はC#を最初に教えています)。 – David
私は今のところそれが好きですが、構文に慣れるのはちょっと難しいです。 – David