gpt4 book ai didi

c++ - 指向模板函数的指针

转载 作者:太空狗 更新时间:2023-10-29 20:45:06 27 4
gpt4 key购买 nike

所以我现在已经习惯了将模板函数指针存储在映射容器中,主要是作为一种模板化函数的方法,该函数返回模板化对象的新实例,并将该函数指针存储在映射中,以便在给定相应对象时调用字符串索引(那是一口)。我的问题在于使用模板函数指针。这似乎有效的唯一原因是因为返回类型或参数都不是模板参数类型。它看起来像这样:

template<class T>
base * createT() {return new T;}

其中 T 应该是从 base 派生的类。现在我可以制作一个可以正常工作的函数指针了

base*(*funcptr)() = &createT<derived>;

但是假设我想设置这样的东西:

template <class returnType, class T>
returnType * createT() { return new T;}

这个函数的函数指针声明是什么样子的?

最佳答案

你不能有一个指向函数模板的指针,只能指向一个函数。所以实际上模板是无关紧要的;你会做类似的事情

A *(*funcptr)() = &createT<A,B>;

演示:http://ideone.com/NoHYS .

关于c++ - 指向模板函数的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11543555/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com