我有一个模板化的类,我想给出一个参数包类型方法,如下所示:
template<class T>
class MyClass {
public:
template<class U>
add(U u) {}
template<class U, typename... Args>
add(U u, Args... args) {
}
};
Run Code Online (Sandbox Code Playgroud)
请注意,T并U始终是相同的类型.
我的问题很简单:是否有可能直接引用T而不是U在这种情况下?我的工作是什么,但如果我T直接提到的话会更清楚意图是什么.
如果我理解正确,你只需要这样:
template<class T>
class MyClass {
public:
add(T t) {}
template<typename... Args>
add(T t, Args... args) {
}
};
Run Code Online (Sandbox Code Playgroud)
请注意,这与您所拥有的不同:您的原始代码接受任何类型作为第一个参数add,而此代码仅接受a T.