Похожие чаты

Uint64_t combine_squares(Square square = 0) { return square; } template<typename

First, typename ... Squares>
uint64_t combine_squares(First first, Squares ... rest)
{
combine_squares(rest...);
}
Hi. In order to get my function work I had to implement that first function. But it looks ugly, because it doesn't make sense with a single variable. Also if I pass two variables but let them have default values still it will be ugly because it will serve no purpose other than allowing the second function to work. This is my first time with variadic templates. Are there any other ways to do this? Note that I've simplified the second function, it actually does something more I just emphasized the part that interests me.

4 ответов

33 просмотра

Ah refactoring variadic templates to something clean while still keeping it performant and the binary size in check is a pain, the no of recursions and the compile time can quickly go out of hand for more than 4-5 parameters with different type. There is a way to compress variadic templates but that uses returning as an initializer list. Also C++ 17 gives you four fold expressions which can be helpful. Please send your actual code, especially the implementation of what uint64_t combine_squares(Square square); does.

and the reason why first, and rest of the combine_squares need to be seperated

Hayk-Zneigras Автор вопроса
Manav | avoid unnecessary messaging me
Ah refactoring variadic templates to something cle...

Thanks. There I call a comvine_squares to combine first and combine_squares(rest...) that's why I considered the option of creating a function with two arguments each with default values. And finaly I return the result of combine_squares with two arguments. What it does is that it generates uint64_t values from each argument and return their bitwise or. Sorry that I'm not sharing the code now, I'm in university, but I think the other time I asked a question there was that code too. Let me check

Похожие вопросы

Обсуждают сегодня

Ready for some fun AND a chance to win TKO Tokens? Join us for exciting minigames in our Telegram group! 🕒 Don’t miss out—games start on today 25 October 2024, at 8 PM! Ge...
Milkyway | Tokocrypto
255
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
How are we going bro about the Raids ??
🅿️abby_FX
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
10
Keep saying it, it’s Trump or WW3. Iran will be emboldened if Harris wins by cheating. Israel will have to take the initiative against Iran. How has BTC faired everytime the...
Adz | Ferrum Network Product & Service Consultant @ Ferrum Network
1
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Карта сайта