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