How to get reference to an element of a std::tuple?

白昼怎懂夜的黑 提交于 2019-12-01 01:16:13

问题


You can get the value of the nth 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?


回答1:


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.




回答2:


get returns a reference, rvalue reference or const reference depending on the type of its argument.




回答3:


std::get returns a reference to the element at the specified position in the tuple.

http://www.cplusplus.com/reference/tuple/get/



来源:https://stackoverflow.com/questions/15835762/how-to-get-reference-to-an-element-of-a-stdtuple

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!