如何在单独的.cpp
文件中实例化类模板的可变参数成员函数模板?比如说,给定一组文件中的上述类模板:a.hpp
定义接口,a_impl.hpp
带实现,a.cpp
带实例化 - - 包括链中的每个先前顺序,但是只有第一个对类的用户可见(而不是开发人员)。
特别感兴趣的是空参数包。
答案 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**);
请注意,在您的设置中,只有“开发人员”可以实例化(需要查看实现以便能够实例化)。