가변 개수의 인수를 사용하는 템플릿 함수가 있습니다. 인수를 특정 유형으로 강제 할 수 없으므로 적어도 컴파일 타임 결정된 수 (예 : 10)보다 인수 수가 더 많지 않도록하고 싶습니다.variadic 템플릿 매개 변수 팩의 매개 변수 수 제한
매개 변수 팩이있는 템플릿 함수의 컴파일 타임 결정 값보다 많은 인수가 있으면 컴파일러에서 오류를 발생시킬 수 있습니까?
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