我想创建一个模板类(我们称之为Foo
),它只接受一些特定的类型参数(我们只说double
and float
)。通常模板在头文件 ( .h
) 中实现,因为它不知道如何在用户代码中实例化。在这种情况下,在实现文件 ( ) 中实现类更有意义,.cpp
如下所示:
// Foo.cpp:
template <class T>
class Foo
{
// Insert members here
};
typedef Foo<double> Foo_d;
typedef Foo<float> Foo_f;
这将在编译 Foo.cpp 时实例化并编译该类。但是,如何在头文件中声明它而不为Foo_d
and编写单独的声明Foo_f
?