d2

    3熱度

    3回答

    比方說,我有一個d模板結構: struct Foo(alias pred) {} 我想寫一個模板來反省什麼預解碼是: alias Foo!"a < b" FooLess; static assert(introspectPred!(FooLess) == "a < b"); 有什麼簡單的方法來做到這一點?如果是這樣,introspectPred如何實施?

    5熱度

    1回答

    D,作爲這一羣人中鮮爲人知的語言,在圖書館的方式上很少涉獵它。我試圖下載一個文件,而我可以看到用DMD 2和phobos來做這件事的方式是使用etc.c.curl,但是......捲曲很難使用。因爲我無法在任何地方找到一個好榜樣。如何使用etc.c.curl以最簡單的方式下載文件?

    6熱度

    2回答

    我想盡可能快地將單個字節從文件讀取到D2應用程序中。應用程序需要每個字節的字節,因此讀取較大的數據塊不是讀取器接口的選項。 爲此我在C++,Java,D2中創建了一些簡單的實現:https://github.com/gizmomogwai/performance。 正如你所看到的,我嘗試了簡單的讀取,應用程序代碼和內存映射文件中的緩衝區。 對於我的用例,內存映射解決方案效果最好,但奇怪的是D2比j

    19熱度

    2回答

    有一段時間我對D的運算符重載的方向感到困惑,但現在我意識到這是一個美麗的系統......如果它只適用於核心類型(int,float等)。考慮如下代碼: struct Vector { float X, Y; void opOpAssign(string op)(Vector vector) { X.opOpAssign!op(vector.X); // ERROR

    6熱度

    1回答

    tl; dr:你如何在D中做perfect forwarding? 鏈接有一個很好的解釋,但是,例如,讓我們說我有這樣的方法: void foo(T)(in int a, out int b, ref int c, scope int delegate(ref const(T)) d) const nothrow { } 如何創建另一種方法,bar(),它可以代替foo()被調用

    5熱度

    1回答

    應該如何該C被轉換爲d: typedef const gchar* (*GModuleCheckInit) (GModule *module); typedef void (*GModuleUnload) (GModule *module); 這是正確的嗎? alias const gchar* function(GModule *module) GModuleCheckInit; ali

    7熱度

    2回答

    我一直在學習D,特別是對它的泛型編程能力非常興奮。代表們精彩的,顯然他們已經完全取代成員函數指針,所以我被卡住時,我想實現類似如下: template <typename T> void DispatchMethodForAll(std::vector<T*> & container, void (T::* func)(void)) { for(typename std::vecto

    5熱度

    1回答

    代碼超載 struct test { private real value; this(real value) { this.value = value; } bool opUnary(string op)() if (op == "!") { return !value; } } void

    3熱度

    1回答

    測試在d以下 import std.stdio; struct S { int _val; @property ref int val() { return _val; } @property void val(int v) { _val = v; writeln("Setter called!"); } } void main() { aut

    8熱度

    5回答

    當我遇到一個有趣的問題時,我正在爲D實現一個動態類型庫。 現在,我成功地創建了一個名爲dynamic()的函數,該函數返回對象的動態版本。 例如: import std.stdio, std.dynamic.core; class Foo { string bar(string a) { return a ~ "OMG"; } int opUnary(string s)(