#include <iostream>

using namespace std;

int add_() {
    return 0;
}

template <typename T> T add_(const T& t) {
    return t;
}

template <typename First, typename... Rest> First add_(const First& first, const Rest&... rest) {
    return first + add_(rest...);
}

int main()
{
    cout << add_(10, 20) << endl;
    cout << add_(100, 200, 300) << endl;
    cout << add_(2.5, 3.14159) << endl;
}
