Параметризовать шаблон шаблоном класса понятно как:
template<template<class> class T> class Foo { /* ...*/ };
А параметризовать шаблоном функции? Вроде этого (код не компилируется):
template<template<class R, class A> R (*fun)(A)> class Foo { /* ...*/ };
Если это возможно, то как? Если нет, то где в документации об этом сказано?