微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

模板 – C std ::函数式模板语法

在C 11中,您可以像这样实例化std ::函数
std::function<void(int)> f1;
std::function<int(std::string,std::string)> f2;
//and so on

但是,尽管有很多关于网络上的可变模板的信息,但我没有找到任何关于如何编写std :: function-like模板的文章,该模板将接受括号括号.
任何人都可以解释语法及其局限性,至少指出现有的解释?

解决方法

没有什么特别的,它是一个普通的功能类型.当你声明这样的功能
int foo(char a,double b)

那么它的类型是int(char,double).单个参数类型和返回类型的“解包”的一种方法是使用部分模板专门化.基本上,std :: function看起来像这样:

template <class T>
struct function; // not defined

template <class R,class... A>
struct function<R (A...)>
{
  // deFinition here
};

原文地址:https://www.jb51.cc/c/112479.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐