显式模板实例化定义是否也会抑制隐式实例化?

时间:2015-10-02 03:58:53

标签: c++ templates c++11 language-lawyer explicit-instantiation

我知道显式实例化声明会抑制隐式实例化。但是,如果只有一个明确的实例化定义呢?它是否也抑制了隐式实例化?

例如:

#include <vector>

template class std::vector<int>;  // Explicit template instantiation definition.

int main() {
    std::vector<int> a;  // Implicit instantiation.
}

显式模板实例化定义是否会抑制后面的隐式实例化?我知道如果我通过添加extern关键字将显式定义变为声明,则隐式实例化被抑制。

0 个答案:

没有答案