【发布时间】:2016-09-21 15:47:33
【问题描述】:
我有一个模板函数,它接受可变数量的参数。由于您不能强制参数为某种类型,我至少希望强制参数的数量不要高于编译时确定的数量(例如 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 是的,拜托,这将非常有用!我会 +1
-
我创建了一个新帖子,正是这样:stackoverflow.com/questions/39659127/…
-
@bolov 很棒的帖子,谢谢!
标签: c++ templates c++11 variadic-templates variadic-functions