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 使用情境
- 傳參數 (如上例)
- 在參數包後加上... 展開
展開的是參數包的表達式,不是本身