该类的头文件如下:
enum class My_Type {
type1,
type2
};
template <int dim>
class My_Class {
public:
My_Class() {};
template <My_Type p_type>
void
func();
}
cpp文件:
template <int dim>
template <My_Type p_type>
void
My_Class<dim>::func() {
if (p_type==My_Type::type1) {
...
} else {
...
}
....
}
电话如下:
My_Class<2> my_obj;
my_obj.template func<My_Type::type1>();
一切都编译得很好,但没有链接:
'Undefined symbols for architecture x86_64'
这是因为部分代码在库中。因此我需要显式实例化。
对于课堂来说,这很明显:
template class My_Class<2>;
问题是,在这种情况下如何实例化模板化函数?有什么技巧或解决方法吗?
p/s/ 如您所见enum
,如果重要的话,我使用 C++11。
p/p/s/ 我浏览了几个链接,但不确定我是否看到了解决方案。