How to set std::tuple element by index?
std::get
returns a reference to the value. So you set the value like this:
std::get<0>(myTuple) = newValue;
This of course assumes that myTuple
is non-const. You can even move items out of a tuple via std::move
, by invoking it on the tuple:
auto movedTo = std::get<0>(std::move(myTuple));
The non-const version of get
returns a reference. You can assign to the reference. For example, suppose t
is tuple, then: get<0>(t) = 3;