Also note that a function template cannot be passed as a template template paramater/argument.

---

A function template is not a function so we can't extract its param. It needs to be instantiated first. 

On Wed, 10 Jul 2024, 22:09 organicoman via Std-Proposals <std-proposals@lists.isocpp.org wrote:
Hello Gents,
    Given this case:
*****
// primary template 
template<void(*)(int)>
struct A;

// specialization 
template<typename T, typename V
    ,template<typename, typename> F
    ,void (*(F<T,V>)(int)>
struct A<F> { };
******
Why this specialization doesn't compile?
And how to extract the template params of a function template, let say

template<typename T, typename V>
void foo(int) {};

In a templated struct that accepts function pointers, let say

template<void(*)(int)>
struct A { // impl };

Regards 
Nadir



Sent from my Galaxy

--
Std-Proposals mailing list
Std-Proposals@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals