实例化类模板的可变参数成员函数模板

时间:2013-05-22 12:21:18

标签: c++ c++11 variadic-templates

如何在单独的.cpp文件中实例化类模板的可变参数成员函数模板?比如说,给定一组文件中的上述类模板:a.hpp定义接口,a_impl.hpp带实现,a.cpp带实例化 - - 包括链中的每个先前顺序,但是只有第一个对类的用户可见(而不是开发人员)。

特别感兴趣的是空参数包。

1 个答案:

答案 0 :(得分:2)

template <class A>
struct AA
{
  template<class Z, class... Q>
  void aa(double, Q... q) {};
};

template void AA<int>::aa<char>(double);
template void AA<int>::aa<char, char*>(double, char*);
template void AA<int>::aa<char, char*, char**>(double, char*, char**);

请注意,在您的设置中,只有“开发人员”可以实例化(需要查看实现以便能够实例化)。