У меня есть два кортежа: std::tuple<F1, F2, ..., FN>
, std::tuple<G1, G2, ..., GN>
(или std::tuple<G1>
aka G1
). Есть ли способ, чтобы присоединиться к этим наборам обобщенно в std::tuple<F1, F2, ..., FN, G1, G2, ..., GN>
, если какой-либо из типов F1
, F2
..., FN
, G1
, G2
..., GN
не имеет конструктор по умолчанию, но может перемещаться/взаимозаменяемы?Соедините два кортежа в C++ 11
9
A
ответ
18
Вы можете использовать std::tuple_cat
std::tuple<foo, bar, baz> buzz;
std::tuple<moo, meow, arf> bark;
auto my_cat_tuple = std::tuple_cat(buzz, std::move(bark)); // copy elements of buzz,
// move elements of bark
выше будет работать, если типы элементов кортежей подвижны или копируемые. И это не требует, чтобы они были по умолчанию конструктивными, если вы не делаете что-то вроде
decltype(std::tuple_cat(buzz, bark)) my_uncatted_yet_tuple; // This will attempt to default construct the tuple elements
my_uncatted_yet_tuple = std::tuple_cat(buzz, std::move(bark));
Смежные вопросы
- 1. пересекающего вложенными C++ 11 кортежа
- 2. Извлечение кортежа value_type из кортежа контейнеров в C++ 11
- 3. Построение объединенного кортежа в C++ 11
- 4. Замена типа внутри кортежа в C++ 11
- 5. вывести тип элементов кортежа в C++ 11
- 6. Соедините два объекта списка в C#
- 7. C++ 11 - семантика кортежа и перемещения
- 8. Соедините два UIScrollView вместе
- 9. Andengine: Соедините два тела
- 10. Соедините два запроса
- 11. Соедините два наблюдаемых в RX.js
- 12. Как сделать функцию, которая застегивает два кортежа в C++ 11 (STL)?
- 13. Как связать два кортежа?
- 14. Эффективно искать два кортежа
- 15. Соедините два UIElement с дугой
- 16. Соедините два запроса sql в одном
- 17. Соедините два файла с JSON
- 18. Как совместить два кортежа в scala?
- 19. Скопируйте два кортежа разных размеров
- 20. C++ 11 связанный std :: function vs сохранение кортежа и распаковка
- 21. C++ 11 variadic templates: возврат кортежа из списка переменных векторов
- 22. C++ 11: построение зОго :: кортежа из шаблонной функции
- 23. Доступ к элементам кортежа по индексу C++ 11
- 24. Как сравнить два кортежа в PIG?
- 25. Соедините два массива со смежными элементами
- 26. Соедините два массива в Visual Basic
- 27. Соедините два массива в агрегации MongoDB?
- 28. Соедините два счета в sql-запросе
- 29. Соедините два списка разной длины между собой
- 30. Соедините два физических компьютера с Apache Thrift