Недавно я подумал о проблеме. Скажем, есть VARIADIC шаблон, как это:Изменение количества определений в классе вариационных шаблонов
template <typename... Types>
class example
{
//something
};
Теперь то, что я хочу добиться того, что когда я создаю объект example<int, double, float>
, этот экземпляр шаблона будет скомпилирован:
class example<int, double, float>
{
int int_array[5];
double double_array[5];
float float_array[5];
}
И когда Я создаю объект example<char, long, myClass2, myClass3>
, будет создан этот экземпляр шаблона класса:
class example<char, long, myClass2, myClass3>
{
char char_array[5];
long long_array[5];
myClass2 myClass2_array[5];
myClass3 myClass3_array[5];
}
Так в основном, для каждого VARIADIC списка стемов параметры пластины, повторите действие для каждого переданного имени типа. В моем примере я объявил 5-элементный массив для каждого типа, переданного в вариационный шаблон. Имена не обязательно должны быть «type_array», это может быть что угодно, если я могу сделать действие (например, объявление переменной) для каждого переданного типа.
Возможно ли это?
ли вы проверить код, он работает? (У меня сейчас нет компилятора/идеала, и мне любопытно) – KKZiomek
@KKZiomek - изменил пример добавления трех отпечатков и, да, скомпилировал и работает; с g ++ (4.9.2) и с clang ++ (3.5) – max66
Спасибо, это именно то, что я искал! – KKZiomek