哦,我看到的是thinking in c++ 的关于编译时编程部分的“编译时选择”的一个例子,例子是这样的:
#include <iostream>
using namespace std;
template<int n1, int n2> struct Max{
enum{ val = n1 > n2 ? n1: n2 };
};
int main(){
cout << Max<10, 20> :: val << endl; //20
}
因为enum相当于一个常量,所以不用分配内存在编译时就可以确定值,但是从这看起来好像三元运算符在编译时就已经知道它的值了。请各位指教。
#include <iostream>
using namespace std;
template<int n1, int n2> struct Max{
enum{ val = n1 > n2 ? n1: n2 };
};
int main(){
cout << Max<10, 20> :: val << endl; //20
}
因为enum相当于一个常量,所以不用分配内存在编译时就可以确定值,但是从这看起来好像三元运算符在编译时就已经知道它的值了。请各位指教。