#include <iostream>
#include <type_traits>
#include <tuple>
#include <iomanip>
template <typename T,typename Tuple, size_t... Is>
void multiply_tuple_elements(T coeff, Tuple& tuple,std::index_sequence<Is...>)
{
using do_= int[];
(void)do_{0, (
std::get<Is>(tuple)*=coeff
,0)...};
}
int main()
{
double coeff = 2.0;
std::tuple<double, double, double> m_size = std::make_tuple(1.0, 1.0, 1.0);
multiply_tuple_elements(
coeff,
m_size ,
std::make_index_sequence<std::tuple_size<decltype(m_size)>::value>()
);
std::cout << std::fixed;
std::cout << std::get<0>(m_size) << std::endl;
std::cout << std::get<1>(m_size) << std::endl;
std::cout << std::get<2>(m_size) << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+CiNpbmNsdWRlIDx0dXBsZT4KI2luY2x1ZGUgPGlvbWFuaXA+Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVCx0eXBlbmFtZSBUdXBsZSwgc2l6ZV90Li4uIElzPgp2b2lkIG11bHRpcGx5X3R1cGxlX2VsZW1lbnRzKFQgY29lZmYsIFR1cGxlJiB0dXBsZSxzdGQ6OmluZGV4X3NlcXVlbmNlPElzLi4uPikKewogICAgdXNpbmcgZG9fPSBpbnRbXTsKICAgICh2b2lkKWRvX3swLCAoIAogICAgICAgICAgICBzdGQ6OmdldDxJcz4odHVwbGUpKj1jb2VmZgogICAgLDApLi4ufTsgCn0KCmludCBtYWluKCkKewogICAgZG91YmxlIGNvZWZmID0gMi4wOwogICAgc3RkOjp0dXBsZTxkb3VibGUsIGRvdWJsZSwgZG91YmxlPiBtX3NpemUgPSBzdGQ6Om1ha2VfdHVwbGUoMS4wLCAxLjAsIDEuMCk7CiAgICBtdWx0aXBseV90dXBsZV9lbGVtZW50cygKICAgICAgICAgICAgY29lZmYsCiAgICAgICAgICAgIG1fc2l6ZSAsCiAgICAgICAgICAgIHN0ZDo6bWFrZV9pbmRleF9zZXF1ZW5jZTxzdGQ6OnR1cGxlX3NpemU8ZGVjbHR5cGUobV9zaXplKT46OnZhbHVlPigpCiAgICApOwogICAgCiAgICBzdGQ6OmNvdXQgPDwgc3RkOjpmaXhlZDsKICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmdldDwwPihtX3NpemUpIDw8IHN0ZDo6ZW5kbDsKICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmdldDwxPihtX3NpemUpIDw8IHN0ZDo6ZW5kbDsKICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmdldDwyPihtX3NpemUpIDw8IHN0ZDo6ZW5kbDsKICAgIAogICAgcmV0dXJuIDA7Cn0=