我知道显式实例化声明会抑制隐式实例化。但是如果只有一个明确的实例化定义呢?它是否也抑制了以下隐式实例化?
例如:
#include <vector>
template class std::vector<int>; // Explicit template instantiation definition.
int main() {
std::vector<int> a; // Implicit instantiation.
}
显式模板实例化定义是否抑制了随后的隐式实例化?我知道,如果我通过在extern
关键字前面加上显式定义将显式定义变为声明,则会抑制隐式实例化。