我正在研究一個現有C庫的D綁定,我有一堆函數定義和一堆綁定。例如:在D中混合具有可變數量的字符串參數的混合?
// Functions
void function(int) funcA;
long function() funcB;
bool function(bool) funcC;
char function(string) funcD;
// etc...
// Bindings
if(!presentInLibrary("func")) return false;
if(!bindFunction(funcA, "funcA")) return false;
if(!bindFunction(funcB, "funcB")) return false;
if(!bindFunction(funcC, "funcC")) return false;
if(!bindFunction(funcD, "funcD")) return false;
// etc...
該模型與Derelict如何處理OpenGL擴展加載非常相似。但是,這看起來像是很多多餘的輸入。我真的很想要一種方式來表達上面的「綁定」部分,如下所示:
BINDGROUP("func", "funcA", "funcB", "funcC", "funcD", ...); // Name of function group, then variable list of function names.
這是可以使用mixins完成的事情嗎?
我不得不嘲笑它,但我認爲你應該可以在不使用字符串混合的情況下使用靜態foreach機能的研究。您可能需要使用模板混合來從正確的作用域綁定事物。 – BCS