fork download
  1. #include <iostream>
  2. #include <type_traits>
  3. #include <tuple>
  4. #include <iomanip>
  5.  
  6. template <typename T,typename Tuple, size_t... Is>
  7. void multiply_tuple_elements(T coeff, Tuple& tuple,std::index_sequence<Is...>)
  8. {
  9. using do_= int[];
  10. (void)do_{0, (
  11. std::get<Is>(tuple)*=coeff
  12. ,0)...};
  13. }
  14.  
  15. int main()
  16. {
  17. double coeff = 2.0;
  18. std::tuple<double, double, double> m_size = std::make_tuple(1.0, 1.0, 1.0);
  19. multiply_tuple_elements(
  20. coeff,
  21. m_size ,
  22. std::make_index_sequence<std::tuple_size<decltype(m_size)>::value>()
  23. );
  24.  
  25. std::cout << std::fixed;
  26. std::cout << std::get<0>(m_size) << std::endl;
  27. std::cout << std::get<1>(m_size) << std::endl;
  28. std::cout << std::get<2>(m_size) << std::endl;
  29.  
  30. return 0;
  31. }
Success #stdin #stdout 0s 4372KB
stdin
Standard input is empty
stdout
2.000000
2.000000
2.000000