我试图理解 C++11 的 type_traits。据我了解,它可以在编译时确定类型。所以我想知道在以下情况下会发生什么:
假设我有一个简单的模板类:
template<class T>
class A {
public:
int num = 0;
A() {
if (is_integral<T>::value)
num = 5;
}
}
现在说我实例化A<int> a
了 100 次,这是否意味着对于对象的每个构造,在构造函数中都会调用 if 块?还是编译器在编译期间消除(优化)if块?请问我是否应该进一步澄清我的问题。