I have a template function that takes a variable number of arguments. Since you can't force the arguments to be of a certain type I would like at least to force the number of arguments not to be higher that a compile-time determined number(e.g. 10).
Is it possible to make to compiler give an error if a template function with a parameter pack has the number of arguments higher than a compile-time determined value?
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();
// }
}
What I want to use it for is for a generic container for all arguments in an QMetaObject::invokeMethod
wrapper function.