2014-04-29 19 views
3

我可以在Vibed's Diet源代碼中看到void compileDietString(string diet_code, ALIASES...)(OutputStream stream__)函數。什麼是vibe.d的飲食模板中的別名?

我發現它佔用了無限量的別名,作爲模板參數。

這些別名是什麼?我無法通過源代碼找出問題,它使用了很多概念,比如特徵和混入,這些我都不太瞭解。

回答

4

這些參數從renderrenderCompat傳遞。從the documentation of renderCompat

以下所有參數必須是一對類型和字符串,每個指定一個參數。參數值可以作爲模板參數指定的相同類型的值傳遞,也可以作爲存儲相同類型的Variant傳遞。

例子:

string title = "Hello, World!"; 
int pageNumber = 1; 
res.renderCompat!("mytemplate.jd", 
    string, "title", 
    int, "pageNumber") 
    (title, pageNumber); 
+0

我還是不明白是如何工作的。最後所有這些變量的意義何在?它們如何得到解釋?另外,完整的文檔不使用配對:'render!(「userinfo.jd」,username)(res);'〜http://vibed.org/docs#http-routing –

+1

'render'不是'renderCompat' 。 'render'使用編譯時自省來查詢標識符類型和名稱。在'renderCompat'中,它們是明確指定的。 –

+0

哦,我現在看到,所以對於常規函數,你可以傳遞變量?謝謝。 –