如何在单独的.cpp
文件中实例化类模板的可变成员函数模板?比如说,给定一组文件中的上述类模板:a.hpp
具有接口的定义,a_impl.hpp
具有实现和a.cpp
实例化, - 它依次包括链中的每个前一个,但只有第一个对类的用户可见(而不是开发商)。
对空参数包的情况特别感兴趣。
如何在单独的.cpp
文件中实例化类模板的可变成员函数模板?比如说,给定一组文件中的上述类模板:a.hpp
具有接口的定义,a_impl.hpp
具有实现和a.cpp
实例化, - 它依次包括链中的每个前一个,但只有第一个对类的用户可见(而不是开发商)。
对空参数包的情况特别感兴趣。
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**);
Note that in your setup only the "developer" can instantiate (one needs to see the implementation in order to be able to instantiate).