web-dev-qa-db-fra.com

Comment définir l'élément std :: Tuple par index?

On peut obtenir un élément de std::Tuple par index à l'aide de std::get. Analogiquement, comment définir l'élément de tuple par index?

72
Behrouz.M

std::get renvoie une référence à la valeur. Vous définissez donc la valeur comme ceci:

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

Cela suppose bien sûr que myTuple est non-const. Vous pouvez même déplacer des éléments hors d'un tuple via std::move, en l'invoquant sur le Tuple:

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

La version non constante de getretourne une référence . Vous pouvez affecter à la référence. Par exemple, supposons que t est Tuple, puis: get<0>(t) = 3;

20
amit