Я использую синтаксис, подобный этому для указателей на функции
int (*pointer_name) (float, char *);
void call_function (void (*)(int), int);
В некоторых функциональных библиотеках С++ 03 я вижу типы, используемые таким образом:
abc::function<void(*)(int,float)> f;
В С++ 11 std::function
Я вижу тип, указанный таким образом
std::function<void(int,float)> f;
Отсутствует (*)
. Почему?
С++ 03 function<T>
имеет T
идентичный тип соответствующему указателю функции. Легко представить себе реализацию.
std::function
в С++ 11 поддерживается усовершенствованиями основного языка. Были ли расширены типы шаблонов шаблонов для размещения возможности вызова?