我想在編譯時使用模板非類型參數來自動分支代碼。即例如:模板非類型參數:編譯時檢查條件
template<std::size_t TDimension>
class A
{
public:
A()
{}
~A()
{}
void print()
{
if(TDimension == 3)
std::cout << "My dimension is 3" << std::endl;
else if(TDimension == 2)
std::cout << "My dimension is 2" << std::endl;
}
};
上面的代碼在運行時分支代碼。問題是:如何在編譯時啓用它以提高性能?
你已經測量這個代碼的性能?沒有?那麼如何在改變它時改進性能?沒有需要改進的地方你就無法改進。 (別擔心,編譯器已經爲你做了優化。) –
恆定表達式和死區消除是真正低懸優化的果實。有理由想要一個真正的編譯時分支,但通常會涉及「如果參數錯誤,其他分支甚至不會編譯」。 – Yakk