Кратко:

Оператор sizeof... вычисляет количество аргументов в пакете параметров шаблона и возвращает это значение как константное выражение std::size_t.

Синтаксис

template<typename... Args>
void function(Args... args) {
    constexpr std::size_t numArgs = sizeof...(Args);
    // ...
}

Пример кода: Условное выполнение в зависимости от количества аргументов

#include <iostream>
 
template<typename... Args>
void processArguments(Args... args) {
    if constexpr (sizeof...(Args) == 0) {
        std::cout << "No arguments provided." << std::endl;
    } else {
        std::cout << "Processing " << sizeof...(Args) << " arguments." << std::endl;
        // Дополнительная обработка аргументов
    }
}
 
int main() {
    processArguments();                 // Output: No arguments provided.
    processArguments(1, 2, 3);          // Output: Processing 3 arguments.
    processArguments("Hello", 'A');     // Output: Processing 2 arguments.
 
    return 0;
}