首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法将qi::_val与Boost1.53绑定(回归?)

无法将qi::_val与Boost1.53绑定(回归?)
EN

Stack Overflow用户
提问于 2013-03-05 20:34:45
回答 1查看 1.1K关注 0票数 3

下面的代码使用boost::spirit,用于boost 1.44和boost 1.49:

代码语言:javascript
运行
AI代码解释
复制
qi::string("a_token")
[
    boost::phoenix::bind(&node_t::some_func, *qi::_val, true)
]

我将boost更新到了1.53版,但是现在这段代码不再编译了。g++抱怨

代码语言:javascript
运行
AI代码解释
复制
error: pointer to member type 'void (node_t::)(bool)' incompatible with object type 'boost::error_cant_deduce_type'

我想不出怎么修好它。下面的代码进行编译:

代码语言:javascript
运行
AI代码解释
复制
qi::string("a_token")
[
    boost::phoenix::bind(&node_t::some_func, (node_t*)0, true)
]

所以我猜问题出在qi::val_上。boost::spirit的API是否改变了,或者我是否丢失了一个包含文件?

我使用的是g++4.7,带有--std=c++0x。

在这里,我尝试了一个小测试用例来重现这个问题。错误消息不一样(但仍然很大!),但问题再次出现在取消引用运算符上。

代码语言:javascript
运行
AI代码解释
复制
#include <boost/spirit/include/qi.hpp>
#include <boost/spirit/include/phoenix_operator.hpp>
#include <boost/spirit/include/phoenix_bind.hpp>
#include <boost/shared_ptr.hpp>


struct node_t
{
    void foo(bool){}
};


int main()
{
    namespace qi = boost::spirit::qi;

    boost::spirit::qi::rule
    <
        std::string::const_iterator,
        boost::shared_ptr<node_t>(),
        boost::spirit::ascii::space_type
    > rule;

    rule = qi::string("true")
        [boost::phoenix::bind(&node_t::foo, *qi::_val, true)];
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-06 19:13:59

这是从上面的有用的评论中得到的答案(感谢llonesmiz)。

当尝试在boost::shared_ptr上使用取消引用运算符*时,在boost::shared_ptr中所做的更改会影响旧版本的boost::pheonix

在包含boost::spirit之前,可以将#define BOOST_SPIRIT_USE_PHOENIX_V3 1添加到源代码中。

此外,一些包含,如#include <boost/spirit/home/phoenix/ ... >将被删除,因为它将与spirit v3冲突。相反,应包括诸如#include <boost/spirit/include/phoenix.hpp>之类的文件。

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

https://stackoverflow.com/questions/15233565

复制
相关文章
无线充电原理与QI协议详解[通俗易懂]
一 、无线充电基本原理 无线充电的基本原理就是我们平时常用的开关电源原理,区别在于没有磁介质耦合,那么我们需要利用磁共振的方式提高耦合效率,具体方法是在发送端和接收端线圈串并联电容,是发送线圈处理谐振状态,接收端线圈也是如此
全栈程序员站长
2022/07/21
8.1K0
无线充电原理与QI协议详解[通俗易懂]
jQuery中,html、val与text的区别与联系
文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书
Tyan
2022/05/09
7020
lombok的val
今天遇到一个情况,我们知道把java代码粘贴到kt文件里,idea会自动转换java为kt
阿超
2023/02/22
9570
lombok的val
动态绑定与静态绑定
为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。 需要理解四个名词: 1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。 2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改,但是静态类型无法更改。 关于对象的静态类型和动态类型,看一个示例: 1 class B 2 { 3 } 4 class C : public B 5 { 6 } 7 class D : public B 8 {
233333
2018/03/07
2.4K0
避免关注底层硬件,Nvidia将机器学习与GPU绑定
【编者按】Nvidia通过发布cuDNN库,将GPU和机器学习更加紧密的联系起来,同时实现了cuDNN与深度学习框架的直接整合,使得研究员能够在这些框架上无缝利用GPU,忽略深度学习系统中的底层优化,更多的关注于更高级的机器学习问题。 以下为译文 近日,通过释放一组名为cuDNN的库,Nvidia将GPU与机器学习联系的更加紧密。据悉,cuDNN可以与当下的流行深度学习框架直接整合。Nvidia承诺,cuDNN可以帮助用户更加聚焦深度神经网络,避免在硬件性能优化上的苦工。 当下,深度学习已经被越来越多的大型
CSDN技术头条
2018/02/08
9350
避免关注底层硬件,Nvidia将机器学习与GPU绑定
理解静态绑定与动态绑定
一个Java 程序要经过编写、编译、运行三个步骤,其中编写代码不在我们讨论的范围之内,那么我们的重点自然就放在了编译 和 运行这两个阶段,由于编译和运行阶段过程相当繁琐,下面就我的理解来进行解释:
cxuan
2019/06/03
1.8K0
线性回归与逻辑回归
在读研期间,一直在帮导师做技术开发,甚至偶尔做一做美工(帮导师和实验室博士生画个图啥的),算法还是较少接触的,其实,我发现,算法还是蛮好玩的,昨晚看了B站一个美女算法工程师讲了线性回归和逻辑回归两种算法,做下总结吧,不然看了之后过两天就抛在脑后,忘光光了。。视频点击这里。
WeiMLing
2019/08/23
8620
线性回归与逻辑回归
[ASP.NET Core 3框架揭秘] 配置[4]:将配置绑定为对象
虽然应用程序可以直接利用通过IConfigurationBuilder对象创建的IConfiguration对象来提取配置数据,但是我们更倾向于将其转换成一个POCO对象,以面向对象的方式来使用配置,我们将这个转换过程称为配置绑定。配置绑定可以通过如下几个针对IConfiguration的扩展方法来实现,这些扩展方法都定义在NuGet包“Microsoft.Extensions.Configuration.Binder”中。
蒋金楠
2019/12/16
9900
[ASP.NET Core 3框架揭秘] 配置[4]:将配置绑定为对象
无线充qi协议c语言详解,无线充电Qi协议正向通信FSK的解调设计[通俗易懂]
摘 要: 无线充电Qi协议提出发射器和接收器通过频率调制(FSK)方式进行正向通信,进而建立完整的通信状态控制。接收器可采用测宽法进行频率解调,然而由于电磁耦合变化、负载变化、载波占空比变化、测量量化等引起的误差,该方法无法满足实际应用的要求。该文针对传统测宽法抗干扰能力弱的问题,提出一种窗口滤波算法,通过参考相邻脉冲频率确定当前脉冲的有效频率,极大地提高了测宽法的抗干扰能力。经实例分析,改进后的测宽法抗干扰能力强、逻辑简单,为无线充电正向通信FSK解调提供一种可行的方法。
全栈程序员站长
2022/07/04
2.8K0
无线充qi协议c语言详解,无线充电Qi协议正向通信FSK的解调设计[通俗易懂]
VBA专题:Val函数
Val函数返回作为参数传递的字符串中的前导数字,它在无法识别为数字部分的第一个字符处停止读取字符串,但它不会在空格处停止。
fanjy
2022/11/16
1.4K0
Train / Val / Test划分
合理的Train/Test集划分会有效地减少under-fitting和over-fitting现象
mathor
2020/01/15
2.2K0
Python 绑定方法与非绑定方法
  import uuid  --------------  uuid是128位的全局唯一标识符, 通常用32位的一个字符串的形式来表现
py3study
2020/01/19
8850
win10 uwp 绑定 OneWay 无法使用
有时候使用绑定的 OneWay 方法无法使用,而使用 TwoWay 的方法就可以使用,但是在调试把 OneWay 做了修改又可以使用,那么请看本文。
林德熙
2018/09/18
6170
win10 uwp 绑定 OneWay 无法使用
jquery的html,text,val
    1.html()用为读取和修改元素的HTML标签     2.text()用来读取或修改元素的纯文本内容     3.val()用来读取或修改表单元素的value值。
ydymz
2018/09/10
1.5K0
jquery的html,text,val
.html()用为读取和修改元素的HTML标签 .text()用来读取或修改元素的纯文本内容 .val()用来读取或修改表单元素的value值。 这三个方法功能上的对比 .html(),.text(),.val()三种方法都是用来读取选定元素的内容;只不过.html()是用来读取元素的HTML内容(包括其Html标签),.text()用来读取元素的纯文本内容,包括其后代元素,.val()是用来读取表单元素的"value"值。其中.和.text()方法不能使用在表单元素上,而.val()只能使用在表单元素上;
marsggbo
2018/01/23
1.9K0
SwiftU:将状态绑定到UI控件
SwiftUI的@State属性包装器允许我们自由修改视图结构体,这意味着当程序更改时,我们可以更新视图属性以匹配。
韦弦zhy
2020/03/20
3K0
将原生事件绑定到组件
官方的例子是晦涩难懂的,除非已经完全理解了,在这里给大家只用通俗易懂的3个例子解释这个问题
砖业洋__
2023/05/06
7150
将原生事件绑定到组件
Java中的静态绑定与动态绑定
由上面我们可以得出结论,如果一个方法不可被继承或者继承后不可被覆盖,那么这个方法就采用的静态绑定。
俺也想起舞
2019/07/24
1.6K0
点击加载更多

相似问题

提供参数作为spirit:qi::_val的boost::spirit绑定函数

10

Spirit::Qi :将绑定推迟到google-protobuf

115

将$("#myId").val()与$(this).val()相结合

32

jQuery无法将val()与parent()结合使用

40

如何将cross_val_score与高阶线性回归结合使用?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文