一种方法是不提供默认实现,并仅在您希望允许的类型上专门化您的类模板.例如:
#include <iostream>
using namespace std;
template<class X> class Gizmo
{
public:
Gizmo();
};
template<> Gizmo<int>::Gizmo()
{
}
int main()
{
Gizmo<float> gf; // ERROR: No specialization for Gizmo<float> results in a linking error
}
Run Code Online (Sandbox Code Playgroud)