2014-10-23 2 views
1

Итак, я хочу иметь указатель на функцию, который передается в шаблонный метод/класс, но я хотел бы узнать, сколько аргументов принимает указатель функции. Есть ли способ сделать это без использования C++ 11. У меня есть доступ к boost. , например:Функция указатель шаблон число аргументов

int test(int a, int b, int c){...} 


template <typename F> templatedF(F func){ 
if(numArgs ==){do this} 
} 


templatedF(&test); 

Или это единственный способ сделать это, чтобы выписать явные экземпляры шаблона, которые имеют количество арг я ищу.

ответ

1

boost function_traits указывает на арность функции.

Я посмотрел на источник и имеет частичную специализацию для 10 аргументов; насколько я знаю, в C++ 03 нет другого способа сделать это, и использование заголовка boost просто избавит вас от выполнения работы.

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