我无法理解为什么我们应该使用显式模板实例化。我认为它用于exclitily指定一系列类/功能/变量,这些将在稍后的程序中使用。所以我尝试了以下示例:
main.cpp
:
#include<iostream>
#include "test.h"
using std::cout;
using std::endl;
U<int> u;
int main()
{
cout << u.a << endl;
}
test.h
template<class T>
class U
{
public:
int a = 10;
};
Makefile
:
TARGET := bin
$(TARGET): main.o
g++ -g -o bin main.o
main.o: main.cpp
g++ -g -std=c++1y -c main.cpp
clean:
rm -rf *.o *.exe
尽管没有使用明确的instatiation,这些程序编译,链接和运行良好。难道你不能举例说明明确的实例是必要的吗?