Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >模板递归区分boot::tuple中的数据类型

模板递归区分boot::tuple中的数据类型
EN

Stack Overflow用户
提问于 2013-05-24 13:25:35
回答 1查看 94关注 0票数 2

问题:我需要一个A的函数对象来递归boost::tuple的数据类型,但对传入成员t的所有其他数据类型执行其他操作。

代码语言:javascript
代码运行次数:0
复制
class A{
public:
    template<typename T>
    void operator()(T& t) const{
//      if (t == tuple){
//          recurse
//      } else{
//          doSomething
//      }
    }
};

class B{
    void init(){
        boost::tuple<int, float> a;
        boost::tuple< boost::tuple<int, std::string>, float > b;

        boost::fusion::for_each(a, A());
        boost::fusion::for_each(b, A());
    }
};

我尝试为A声明之上的所有可能传入的数据类型设置静态函数,但是我无法返回到递归函数,因为这些静态函数不知道class A。我的第二种方法是为所有可能的数据类型实现静态函数,为boost::tuple返回true,为任何其他类型返回false (与示例中非常相似)。但是我不能实现for_each调用,因为(即使它被if包住了)我的集成开发环境说没有匹配的函数调用(对于intfloatstring类型是正确的)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-24 13:30:13

如果我没理解错你的问题,你可以只提供两个调用操作符的重载,一个接受boost::tuple的实例化,并在该元组上调用boost::fusion::for_each(),另一个回退,接受任何类型的参数,并对“叶”类型执行具体操作:

代码语言:javascript
代码运行次数:0
复制
class A
{
public:
    template<typename T>
    void operator()(T& t) const
    {
        // Do something
    }

    template<typename... Ts>
    void operator ()(boost::tuple<Ts...>& t) const
    {
        // Recurse
        boost::fusion::for_each(t, A());
    }
};

在上面的示例中,我使用的是C++11的可变模板,因此您需要一个与C++11兼容的编译器才能工作(不要忘记在命令行中指定标志-std=c++11-std=c++0x )。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16736099

复制
相关文章
Asp.Net Mvc表单提交(批量提交)
Asp.Net Mvc中Action的参数可以自动接收和反序列化form表单的值,
yaphetsfang
2020/07/30
3K0
在ASP.NET MVC 4中使用Kendo UI Grid
Kendo UI 是Telerik推出的一套based on jQuery 的 Framework,提供了很多控件(Menu 、Grid 、Combox等...), 底层以Html5 + jQuery 来打造,并且兼容于各大浏览器,包含IE7、IE8。相关介绍可以参考AJAX式数据清单的新选择-Kendo UI Grid。 以下内容参考台湾的黑老大的文章:在ASP.NET MVC 4中使用Kendo UI Grid 建立一个ASP.NET MVC 4专案 使用NuGet安装KendoUIWeb及Kendo
张善友
2018/01/22
3.3K0
在ASP.NET MVC 4中使用Kendo UI Grid
ipa上传,提交AppStore,windows上传ipa
将ipa提交到AppStore需要Mac电脑操作,现在大部分的程序员都是使用混合开发平台windows系统的电脑,自己装虚拟机过程又繁琐。使用此工具只需要网页上点两下帮你完成这些鸡毛蒜皮事,让你有更多的时间花在改bug上
英曼畅学
2023/04/17
1.2K0
Spring MVC 提交带有点分隔的参数
重点就是需要配置参数@InitBinder告诉当请求的方法上有orderTargetingsVo这个名称的参数的时候,参数普遍有一个前缀。意思就是给这个vo里面去set值的时候使用没有这个前缀的名称与vo里面的set方法去匹配;
前Thoughtworks-杨焱
2021/12/08
5120
Spring mvc文件上传实现
三个要素: 1.表单项type=“file” 2.表单的提交方式:post 3.表单的enctype属性是多部分表单形式:enctype=“multipart/form-data” 会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息;由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。 3.1.当form表单修改为多部分表单时,request.getParameter()将失效。 3.2.enctype=“application/x-www-form-urlencoded”时,form表单的正文内容格式是:key=value&key=value&key=value 3.3.当form表单的enctype取值为Mutilpart/form-data时,请求正文内容就变成多部分形式:
一只胡说八道的猴子
2020/10/28
3970
Spring mvc文件上传实现
Spring Web MVC 文件上传
1.1 相关依赖 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2
Demo_Null
2020/09/28
1K0
Spring Web MVC 文件上传
Spring MVC表单防重复提交
利用Spring MVC的过滤器及token传递验证来实现表单防重复提交。 创建注解 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Token { boolean create() default false; boolean remove() default false; } 在跳转页面的方法上加上:@Token(create = true
Java技术栈
2018/03/30
1.7K0
Spring MVC表单防重复提交
Spring MVC 处理文件上传
由此说明 MultipartFile 的实际类型为 org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile
acc8226
2022/05/17
4930
Spring mvc文件上传实现
**3.**表单的enctype属性是多部分表单形式:enctype=“multipart/form-data”
一只胡说八道的猴子
2020/10/18
5140
Spring mvc文件上传实现
【Telerik和Kendo UI组件】上海道宁与progress为您提供Web、移动和桌面构建功能更丰富的现代体验
Progress是已经成立40多年的科技公司,是一家经验丰富、值得信赖的产品供应商。
51Component
2022/08/23
2.4K0
【Telerik和Kendo UI组件】上海道宁与progress为您提供Web、移动和桌面构建功能更丰富的现代体验
【jquery ajax】实现文件上传提交
✍️ 作者简介: 前端新手学习中。 💂 作者主页: 作者主页查看更多前端教学 🎓 专栏分享:css重难点教学 Node.js教学 从头开始学习 ajax学习 在这里看原生ajax实现文件上传 文章目录 JQuery实现文件上传提交   定义UI结构   验证是否选择了文件   向FormData中追加文件并发起ajax请求   jquery实现loading效果   完整代码 JQuery实现文件上传提交   定义UI结构 <script src="https://cdn.
坚毅的小解同志的前端社区
2022/11/28
4K0
【jquery ajax】实现文件上传提交
当大模型不是问题时,如何应对 LLM 的工程化落地挑战?
几个月前,在 Thoughtworks 的内部 AIGC 研讨会里,我们一直达成了一系列一致观点,诸如于:如果没有 “开源模型” 降低企业应用 LLM 的成本,那么 LLM 会很快消亡。所以,我们相信开源 LLM + LoRA 微调会成为企业的一种主流方式。现今,我们可以看到 LLaMA 2、Code LLaMA 2 等模型在不断刷新这种可能性。
Phodal
2023/09/10
2.1K1
当大模型不是问题时,如何应对 LLM 的工程化落地挑战?
Git提交时过滤某些文件
4.这个文件处理好以后,如果感觉没有作用,说明你在创建这个文件之前就已经add过了,这时执行
Arno
2019/12/06
2.9K0
Git提交时过滤某些文件
Ajax使用formData提交带图片上传的表单
记录一下今天踩过的坑。。这么个问题居然搞了快两个小时了。ssm框架,前台form带图片上传,因为效验表单数据,所以不能直接submit。
sunonzj
2022/06/21
2.3K0
使用Kindeditor的多文件(图片)上传时出现上传失败的解决办法/使用Flash上传多文件(图片)上传时上传失败的解决办法
近来用户反映希望我们把在线编辑器中的多图片上传功能实现,因为他们在编辑商品描述时经常会有一次上传多张图片的需求,如果要逐张选择的话效率很低,客户的需求就是我们的追求,很快我们就把完善功能排到了日程表中,要求尽快实现。
风柏杨4711
2021/03/15
3.5K0
.net mvc + layui做图片上传(一)
  图片上传和展示是互联网应用中比较常见的一个功能,最近做的一个门户网站项目就有多个需要上传图片的功能模块。关于这部分内容,本来功能不复杂,但后面做起来却还是出现了一些波折。因为缺乏经验,对几种图片上传的方法以及使用范围和优缺点都不太了解,导致在做相关功能时也确实走了一些弯路。
CherishTheYouth
2019/07/30
1.5K0
.net mvc + layui做图片上传(一)
Spring MVC多种情况下的文件上传
会洗碗的CV工程师
2023/10/14
2180
Spring MVC多种情况下的文件上传
java之spring mvc之文件上传
注意,下面说的配置文件,一般都是值的src下的配置文件,即mvc.xml。如果是web.xml,则直接说 web.xml
Vincent-yuan
2019/09/11
4550
java之spring mvc之文件上传
点击加载更多

相似问题

当所有的异步方法都完成时,C#添加异步方法的结果

12

当user.csv中的所有用户都完成时,停止users测试

26

当不同演示程序中的所有异步方法都完成时,更新UI状态

12

当向量中的所有值都小于10^-8时,要求代码停止

11

当RecylerView中的所有onCreateViewHolder都完成时通知

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文