Date: Wed, 10 Jul 2024 20:54:37 +0400
-->A function template is not a function so we ---can't extract its param. It needs to be instantiated first. Back to the example:template<typename T, typename V>void foo(int) {}// let's instantiate a function from footemplate void foo<double, char> (int);So to extract these two template arguments?Assume we have a primary template:template <void(*)(int)>struct A;What's the specialization that can extract the arguments of foo<double, char>?Sent from my Galaxy
-------- Original message --------From: Anoop Rana <ranaanoop986_at_[hidden]> Date: 7/10/24 8:44 PM (GMT+04:00) To: std-proposals_at_[hidden] Cc: organicoman <organicoman_at_[hidden]> Subject: Re: [std-proposals] template params of a function template 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_at_[hidden] 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 saytemplate<typename T, typename V>void foo(int) {};In a templated struct that accepts function pointers, let saytemplate<void(*)(int)>struct A { // impl };Regards NadirSent from my Galaxy--
Std-Proposals mailing list
Std-Proposals_at_[hidden].org
https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
-------- Original message --------From: Anoop Rana <ranaanoop986_at_[hidden]> Date: 7/10/24 8:44 PM (GMT+04:00) To: std-proposals_at_[hidden] Cc: organicoman <organicoman_at_[hidden]> Subject: Re: [std-proposals] template params of a function template 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_at_[hidden] 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 saytemplate<typename T, typename V>void foo(int) {};In a templated struct that accepts function pointers, let saytemplate<void(*)(int)>struct A { // impl };Regards NadirSent from my Galaxy--
Std-Proposals mailing list
Std-Proposals_at_[hidden].org
https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
Received on 2024-07-10 16:54:44