170 похожих чатов

Добрый вечер, подскажите как из переменного списка шаблонных параметров достать

размер самого большого?
пробую сделать примерно так, но что-то оно ругается (неправильное кол-во аргументов шаблонизации):

template <int I, typename F, typename... Ts>
struct maxSizer
{
static int ms()
{
constexpr int f = sizeof(F);
constexpr int t = maxSizer<I-1, Ts...>::ms();
return f > t ? f : t;
}
};

template <int I, typename F, typename... Ts>
struct maxSizer<0, F, Ts...>
{
static int ms() { return sizeof(F); }
};

template <typename ... Ts>
constexpr int maxTypeSize()
{
return maxSizer<sizeof...(Ts), Ts...>::ms();
}

template <typename ... Ts>
struct Optional
{
constexpr int sz = maxTypeSize<Ts...>();
uint8_t value[sz];
size_t kind;
}

6 ответов

12 просмотров
Oleg-B Автор вопроса

я вообще в правильном направлении пытаюсь решить задачу?

в смысле std::max({ sizeof(Ts)... }) ?

Constantine Drozdov
в смысле std::max({ sizeof(Ts)... }) ?

Время компиляции: *уменьшается*

Danya🔥
Время компиляции: *уменьшается*

Такой вариант как раз будет быстрее чем рекурсия

Oleg-B Автор вопроса
Constantine Drozdov
в смысле std::max({ sizeof(Ts)... }) ?

да, так немного проще, спасибо

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

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

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
28
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
10
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
В clientsettings есть поле client_rates. В поле pagebuilder. Как получить то его?)
Andrey K
8
Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
Карта сайта