Tôi có câu hỏi về việc chia một bộ tuple, như tiêu đề đã nói.Cách chia một bộ tuple bằng C++
Trong thực tế, tôi có thể làm điều đó bằng cách sử dụng std::index_sequence
, nhưng mã trông xấu xí.
Có cách nào thanh lịch để hoàn thành việc này không?
Dưới đây là một số mã để hiển thị ý của tôi.
#include<tuple>
using namespace std;
template<typename THead, typename ...TTails>
void foo(tuple<THead, TTails...> tpl)
{
tuple<THead> tpl_h { get<0>(tpl) };
tuple<TTails...> tpl_t { /* an elegent way? */ }
do_sth(tpl_h, tpl_t);
}
int main()
{
foo(make_tuple(1, 2.0f, 'c'));
return 0;
}
Một câu hỏi tương tự đã được hỏi trước: https://stackoverflow.com/questions/8569567/get-part-of-stdtuple nhưng câu trả lời C + 17 bằng cách nhìn ngắn gọn hơn. – Swift
@Swift Cảm ơn bạn, tôi sẽ đi xem. – WangChu