Помещение:
У меня есть вариативная функция шаблона, которая принимает POD (простая старая структура данных) с однородными типами членов.
Приемлемый POD может полностью состоять из 4-байтовых целых чисел XOR с 4-байтовыми числами с плавающей запятой.
Внутри переменный параметр приводится к указателю базового типа и используется как примитивный массив.
Проблема:
В настоящее время функция шаблона требует, чтобы пользователь предоставил некоторую дополнительную информацию о форматировании этих POD; например, в следующем:
Декларация
template<typename ...U>
void foo(const char *format, U... bars);
использование
Blah much, wow; // Underlying type is integral.
Bleh such, params; // underlying type is float.
//...
foo("iffi",much,params,such,wow);
Это работает, но я бы хотел обойти строку форматирования.
Вопрос:
Есть ли способ оценить базовый тип во время компиляции?
Изменить. Макет структуры и имена ее членов неизвестны до времени компиляции. То есть пользователь библиотеки предоставляет произвольный однородный POD.
Blah
,Bleh
и т. д.? - person m.s.   schedule 09.09.2016