我是一個完整的小白來元編程和我的問題非常簡單,但我還沒有發現類似的簡單answer.Something的回答here但我不能把它翻譯給我需要。插入方法的身體條件使用C++模板
我有這樣
class Program {
public:
Program(){}
SetMatrixUniform(){
CallSomeMethodX();
}
~Program(){}
};
一類,但我有我需要用同樣的方法在同一類,但呼籲他們bodies.Something不同的功能類似這樣的場景:
class Program {
public:
Program(){}
SetMatrixUniform(){
CallSomeMethodY();
}
~Program(){}
};
我想有模板接口與「真」參數這樣的類選擇要執行的投入在編譯時類成員方法,而不是保持2這樣的類。
是這樣的:
Program<true> myProg; ///expands CallSomeMethodX(); into SetMatrixUniform()
同時:
Program<false> myProg; ///expands CallSomeMethodY(); into SetMatrixUniform()
我所看到的例子,其中類變化的聲明,然後通過專業化的最後類擴展those.I的人會喜歡做的事它沒有使用繼承,因爲這裏的性能非常重要。
您可能對[此博客條目]感興趣(http://dev-jungle.blogspot.de/2014_02_01_archive.html)。這就是我通常用來解決這類問題的方法。同樣適用於例如選擇提供行爲實現的特定基類。 –