fork(1) download
  1. #include <iostream>
  2.  
  3.  
  4. using namespace std;
  5.  
  6. template<typename T>
  7. T&& vmin(T&& val)
  8. {
  9. return std::forward<T>(val);
  10. }
  11.  
  12. template<typename T0, typename T1, typename... Ts>
  13. auto vmin(T0&& val1, T1&& val2, Ts&&... vs)
  14. {
  15. return val1 < val2 ?
  16. vmin(val1, std::forward<Ts>(vs)...) :
  17. vmin(val2, std::forward<Ts>(vs)...);
  18. }
  19.  
  20.  
  21. int main()
  22. {
  23. int x = 7;
  24. int y = 3;
  25. int& z0 = x;
  26. int& z1 = y;
  27. ((z0<z1)?z0:z1)=2;
  28. // vmin(z0, z1) = 2;
  29. std::cout << x << "," << y << "\n";
  30. cout << vmin(3, 2, 0.9, 2, 5) << endl;
  31.  
  32. cout << vmin(3., 1.2, 1.3, 2., 5.2) << endl;
  33.  
  34. return 0;
  35. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
7,2
0.9
1.2