我有一个模板函数,它接受可变数量的参数。既然你不能强制参数是某种类型,我想至少强制参数的数目不要高于编译时确定的数目(例如10)。限制可变参数模板参数包中参数的数量
如果带有参数包的模板函数的参数数量高于编译时间确定值,编译器是否可以提供错误?
template <class ...Args>
void setRequestArguments(const Args&... args)
{
const std::vector<QGenericArgument> vec = { args... };
qDebug() << sizeof...(args);
// Do stuff...
// for (unsigned i = 0; i < vec.size(); ++i) {
// qDebug() << vec[i].name();
// }
}
我想使用它的是一种用于在QMetaObject::invokeMethod
包装函数的所有参数的通用容器。
可以将参数限制为某种类型。你想对此做出答案吗?你是否要求参数完全是'T'还是可以转换为'T'的东西? – bolov
@bolov是的,请,这将是非常有用的!我会+1 –
我用这个创建了一个新帖子:http://stackoverflow.com/questions/39659127/restrict-variadic-template-arguments/39659128#39659128 – bolov