Tôi có một lớp có chứa một tuple của loại biến như thế này:Làm thế nào để trích xuất một tập con của một bộ tuple trong một bộ dữ liệu mới?
template<class... Ts>
struct Tester
{
std::tuple<Ts...> t;
template<class... T2s>
std::tuple<T2s...> Get() { ??? }
};
Một instance ví dụ là Tester<int, float, char>
Tôi muốn chức năng Nhận của tôi trở lại chỉ là một tập hợp con của tuple trong. Ví dụ: tester.Get<int, char>
sẽ trả lại một std::tuple<int, char>
có giá trị được sao chép từ các thành viên thích hợp của bộ bên trong.
Bạn có thể giả định rằng mỗi loại xuất hiện tối đa một lần trong một bộ và Get
sẽ chỉ được gọi với các thông số mẫu hợp lý nằm trong bộ dữ liệu.
"Loại kết hợp đầu tiên" là gây hiểu lầm. Nếu loại xảy ra nhiều lần, chương trình sẽ bị hỏng. –