Como definir o elemento std :: tuple por índice?

90

Pode-se obter um elemento std::tuplepelo índice usando std::get. Analogicamente, como definir o elemento da tupla por índice?

Behrouz.M
fonte

Respostas:

133

std::getretorna uma referência ao valor. Então, você define o valor assim:

std::get<0>(myTuple) = newValue;

Isso, é claro, assume que myTuplenão é constante. Você pode até mover itens para fora de uma tupla std::move, invocando-a na tupla:

auto movedTo = std::get<0>(std::move(myTuple));
Nicol Bolas
fonte
26

A versão não const de get retorna uma referência . Você pode atribuir à referência. Por exemplo, suponha que tseja tupla, então:get<0>(t) = 3;

amit
fonte