У меня есть функция шаблона, которая принимает переменное количество аргументов. Поскольку вы не можете заставить аргументы быть определенного типа, я хотел бы, по крайней мере, заставить число аргументов не быть выше, чем определенное количество времени компиляции (например, 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
обертке.