13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
||||||
1 | ||||||
Recursive variadic generic lambda up to c++1711.01.2021, 23:26. Показов 697. Ответов 6
Метки нет (Все метки)
Решил немного поэкспериментировать с лямбдами, решая задачу конвертации переменных кортежа в дамп памяти, но шаблонные лямбды из C++20 пока не использую.
Цель сделать тоже что и в случае рекурсивно вызываемой шаблонной вариативной функции, но исключительно на лямбдах. Потому что внутри функции шаблоны запрещены(но не generic lambda), а писать внешюю шаблонну функцию громоздко. В и тогде получилась хрень, которая не работает, но компилируется. Лбопытно стало, а во что оно инстанцировалось, и можно ли сделать так чтоб работало.
В итоге получилась хрень, которая не работает, но компилируется. Любопытно стало, а во что оно инстанцировалось, и можно ли сделать так чтоб работало.
0
|
11.01.2021, 23:26 | |
Ответы с готовыми решениями:
6
Variadic template lambda capture Variadic Templates - как обращаться к аргументам variadic-функции? Сконструировать \lambda-вызов и вычислить его значение Lambda Variadic templates, или variadic constructor в шаблоне, или прочие извращения |
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
|
||||||
11.01.2021, 23:33 | 2 | |||||
Сделал вот так:
1
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
|
11.01.2021, 23:53 [ТС] | 3 |
jugu, Да, Вы правы, это отладчик показывает хрень, когда хочешь посмтреть
static constexpr auto item_size = sizeof (__arg0);
0
|
What a waste!
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
|
||||||
12.01.2021, 00:05 | 4 | |||||
Если использование рекурсии - не самоцель, то проще обойтись без неё, КМК; как-нибудь так:
0
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
||||||
12.01.2021, 00:17 [ТС] | 5 | |||||
gray_fox, Нет, как раз наоборот. Рекурсия как мне кажется наоборот нежелетельная изза того что компилятор должен по сути генерировать кучу функтуров-специализаций для каждого списка аргументов.
Но Я бы Ваш вариант немно поправил:
В вашем случае количество лямбд будет равно количеству типов в кортеже, что лучше чем у меня.
0
|
What a waste!
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
|
|
12.01.2021, 00:21 | 6 |
0
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
|
12.01.2021, 00:36 [ТС] | 7 |
Я хрень написал.
Там операторы вызова множаться в лямбде, а не сами лямбды.
0
|
12.01.2021, 00:36 | |
12.01.2021, 00:36 | |
Помогаю со студенческими работами здесь
7
Спецификация generic upcast/downcast в generic типах Error, recursive assignment Predicates for recursive functions Prolog Postgresql recursive sum + path XDelta Recursive Patch Maker With recursive update postgres очень сложно Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |