|
Распаковка std::tuple
|
|||
---|---|---|---|
#18+
Задача: упаковать вариативные параметры в std::tuple (по значанию), а потом std::tuple распаковать в вариативные параметры. Вроде бы я решил задачу, но код странно работает: std::tuple не хочет принимать параметры одинаковых типов, типы должны быть уникальны. Что же делать? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2020, 14:40 |
|
Распаковка std::tuple
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky Я что-то такое находил. Неужели не существует чего-то уже готового-стандартного и простого? Ведь мой код работает. Только с уникальными типами почему-то... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2020, 14:55 |
|
Распаковка std::tuple
|
|||
---|---|---|---|
#18+
petrav Неужели не существует чего-то уже готового-стандартного и простого? Существует, с С++17 https://en.cppreference.com/w/cpp/utility/apply А пример выше для С++11. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2020, 15:06 |
|
Распаковка std::tuple
|
|||
---|---|---|---|
#18+
petrav Ведь мой код работает. Только с уникальными типами почему-то... Все правильно. std::get<Parameters> работает только для уникальых типов. То, что я привел работает с числовыми индексами std::get<0>, 1, 2 и т.д. предварительно сформировав пакет из этих индексов. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2020, 15:10 |
|
Распаковка std::tuple
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky petrav Ведь мой код работает. Только с уникальными типами почему-то... Все правильно. std::get<Parameters> работает только для уникальых типов. То, что я привел работает с числовыми индексами std::get<0>, 1, 2 и т.д. предварительно сформировав пакет из этих индексов. Что-то не получается разобраться, помогите плиз. Вот как написать-то? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2020, 15:32 |
|
Распаковка std::tuple
|
|||
---|---|---|---|
#18+
Кстати, вот так получилось: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Простейшая же задача, но TupleUnpack функцией сделать не получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2020, 15:48 |
|
Распаковка std::tuple
|
|||
---|---|---|---|
#18+
petrav Что-то не получается разобраться, помогите плиз. Вот как написать-то? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Не работает. В std::apply надо передавать уже инстанцированную функцию или экземпляр класса . Потому что нельзя получить адрес шаблона. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2020, 20:19 |
|
Распаковка std::tuple
|
|||
---|---|---|---|
#18+
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2020, 20:21 |
|
Распаковка std::tuple
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky Код: plaintext 1.
Бинго! Спасибо. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2020, 20:54 |
|
|
start [/forum/topic.php?fid=57&msg=39985613&tid=2017370]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 140ms |
0 / 0 |