2016-01-08 2 views
3

В чем проблема?списки шаблонов нескольких шаблонов не допускаются

struct fbe { 
    char *fbtName; 
    template<typename T, typename... vT> 
    T(*funcptr)(T, vT...); 
}; 

И в чем разница, которая скомпилировала его при написании?

template<typename T, typename... vT> 
struct fbe { 
    char *fbtName; 
    T(*funcptr)(T, vT...); 
}; 

Я очень новичок в использовании функций шаблона.

+0

В принципе, вы не можете иметь шаблонные переменные-члены. Для чего это так, Бо Перссон отвечает на это довольно хорошо. – AndyG

ответ

8

Разница в том, что во втором случае вы можете использовать параметры шаблона для создания набора различных структур, все из которых имеют один элемент указателя на функцию.

В первом случае у вас будет один тип структуры с бесконечным числом членов указателя функций. Вы не можете этого сделать, если ничего другого, потому что все объекты одного и того же типа структуры должны иметь одинаковый размер.

Смежные вопросы