首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模板静态成员函数指针的C++11向量

模板静态成员函数指针的C++11向量
EN

Stack Overflow用户
提问于 2015-08-16 21:07:34
回答 2查看 51关注 0票数 1

假设我有这样一门课:

代码语言:javascript
复制
struct MyStruct
{
    template<typename T>
    static int Func()
    {
        // Do something with the template parameter.
    }
};

现在假设我想用Func的prototype创建指向函数的指针向量。由于原型不依赖于模板参数,所以应该是可能的。而且,果然,我可以显式地typedef一个指向Func的指针,如下所示:

代码语言:javascript
复制
typedef int (* FuncPtr)(MyStruct * pointer);

然后,创建向量就像:

代码语言:javascript
复制
std::vector<FuncPtr> FuncVector;

但是,我想避免两次声明Func的原型。这样做有可能吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-16 21:13:43

使用decltype

代码语言:javascript
复制
std::vector<decltype(&MyStruct::Func<void>)> FuncVector;
票数 0
EN

Stack Overflow用户

发布于 2015-08-16 21:10:43

typedef for FuncPtr不同,您可以这样做:

代码语言:javascript
复制
using FuncPtr = decltype(&MyStruct::Func<int>);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32039963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档