我对这段代码有问题:
#include <iostream>
using namespace std;
class A {
public:
template<typename T, typename... Args>
void stuff(Args... args);
};
template<typename T, typename... Args>
void A::stuff(Args... args) {
cout << sizeof...(args) << endl;
}
template<>
void A::stuff<int>() {
cout << "int" << endl;
}
int main() {
A a;
A b;
a.stuff<char>();
b.stuff<int>();
}
试图编译它,我得到这个错误:
template-id 'stuff<int>' for 'void A::stuff()' does not match any template declaration
我究竟做错了什么?我在没有可变参数的情况下尝试了它并且它有效,但是我如何专门化可变参数模板成员函数?