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