#include <iostream>
// ベースケース: 単一の値を返す
template <typename T>
T minimum(T t) {
return t;
}
// 再帰的に最小値を取得する
template <typename T, typename... Args>
T minimum(T first, Args... args) {
return std::min(first, minimum(args...));
}
int main() {
std::cout << "Minimum value is: " << minimum(5, 3, 9, 1, 8) << std::endl; // 1が出力される
std::cout << "Minimum value is: " << minimum(10, 20, 5, 15) << std::endl; // 5が出力される
std::cout << "Minimum value is: " << minimum(4.5, 3.5, 5.6, 7.8) << std::endl; // 3.5が出力される
return 0;
}