跳至主要内容

Variadic Template

Template: 當程式呼叫的時候,才會在compile time去產出相對應type的程式碼

Variadic Template

// sum of all element

template<typename T>
T sum(const T& first)
{
return first;
}

template<typename T, typename... Args>
T sum(const T& first, const Args&... args) {
return first + sum(args...);
}

Pack expansion 使用情境

  1. 傳參數 (如上例)
    • 在參數包後加上... 展開

展開的是參數包的表達式,不是本身