偏特化实现if
将if语句放在编译期执行,可以用模板特化的方式实现。下面是实现代码
#include <iostream>
using namespace std;
template <bool condition>
class If {
public:
static inline void Run()
{
cout << "it's true" << endl;
}
};
template <>
class If<false> {
public:
static inline void Run()
{
cout << "it's false" << endl;
}
};
int main()
{
// test if
cout << "test if" << endl;
If<false>::Run();
If<true>::Run();
}
测试结果为
test if
it's false
it's true