我想在编译时使用模板非类型参数来自动分支代码。即例如:模板非类型参数:编译时检查条件
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