2013-04-05 30 views
5

Bạn có thể nhận được giá trị của thành phần thứ n của số std::tuple bằng cách sử dụng std::get<n>(tuple). Nhưng tôi cần phải chuyển một phần tử của tuple đó như tham chiếu đến một hàm.Làm cách nào để tham chiếu đến phần tử của std :: tuple?

Làm cách nào để có được tham chiếu đến một phần tử của một std::tuple?

Trả lời

8

std::get trả về một tham chiếu (hoặc const hay không const), vì vậy công trình này:

void fun(int &a) { 
    a = 15; 
} 

void test() { 
    std::tuple<int, char> foo{ 12, 'a' }; 
    fun(std::get<0>(foo)); 
} 

Demo here.

+0

Nhờ câu trả lời của bạn Tôi tìm thấy lý do mã của tôi không biên dịch. – danijar

0

get trả về tham chiếu, tham chiếu rvalue hoặc tham chiếu const tùy thuộc vào loại đối số của nó.

Các vấn đề liên quan