You can get the value of the n
th element of an std::tuple
using std::get<n>(tuple)
. But I need to pass one element of that tuple as reference to a function.
How do I get the reference to an element of a std::tuple
?
You can get the value of the n
th element of an std::tuple
using std::get<n>(tuple)
. But I need to pass one element of that tuple as reference to a function.
How do I get the reference to an element of a std::tuple
?
std::get
returns a reference(either const or non-const), so this works:
void fun(int &a) {
a = 15;
}
void test() {
std::tuple<int, char> foo{ 12, 'a' };
fun(std::get<0>(foo));
}
Demo here.
get
returns a reference, rvalue reference or const reference depending on the type of its argument.
std::get
returns a reference to the element at the specified position in the tuple.
http://www.cplusplus.com/reference/tuple/get/