1
如果定义了该类型的本地自动变量,是否会实例化模板?实例化局部变量的模板
例如
template<typename T> class MyClass {
};
int main() {
MyClass<int> var; // Does this cause instantiation?
}
编辑:
为什么我问这是下面的代码的原因:
template<typename T> class get_false { public:
static constexpr bool val = false;
};
template<typename T>
class MyClass_2 {
static_assert(get_false<T>::val, "Failure");
};
template<typename T, typename U = MyClass_2<T>>
class MyClass {};
int main() {
MyClass<bool> obj; // I suppose this isn't instantiated
}
你能解释为什么你认为它可能没有被实例化吗?好奇你的推理。 – Borgleader
@Albert它被实例化。 –
添加了我的推理。这会让问题变得更加冗长,但我同意这可以更好地解释我的疑惑。 – Albert