问题标签 [boost-phoenix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
136 浏览

c++ - Boost Phoenix 编译错误

我正在尝试使用 Boost Phoenix。我的目标是让 stl 算法采用容器而不是迭代器范围,如此处 所述。但是,我在一个相当简单的代码上遇到了一堆错误:

我在两个平台(Win7、Ubuntu)上尝试过,否则我会使用 Boost 的多个部分。

错误消息相当长,所以我将它们放在文件中:

除了没有正确编译模板之外,我真的不能犯很多错误,但我想我错过了一些相当简单的东西。

0 投票
1 回答
360 浏览

c++ - 如何为涉及对象成员、间接和强制转换的排序算法实现 lambda 函数?

我正在编写一些代码,并且我有一个部分可以执行一次性排序功能。为了实现它,我决定重载 operator< 函数是最简单的。我更愿意做的是通过使用某种 boost::bind、boost::phoenix、lambda 或某种其他类型的实现来使排序的实现更接近实际调用。不幸的是,我无法访问新的 C++11 功能。下面是一些示例代码。

当我试图弄清楚如何访问成员指针、成员函数然后将结果全部转换为 boost::bind 函数时,我迷失了方向。

谢谢您的帮助。

0 投票
1 回答
129 浏览

c++ - boost::phoenix 相当于什么?

我有以下内容:

如何使用std::for_eachand实现 for 循环boost::phoenix?我尝试了一些方法,但它变得非常丑陋(我有大量的嵌套bind()语句)。我基本上只是想看看如何干净和可读的 boost phoenix 可以使这个 for 循环,所以我没有编写太多样板代码来迭代具有 1-2 行专用逻辑的容器。

有时,在 C++11 之前做 lambdas 似乎太不可读和不可维护,不值得麻烦。

0 投票
1 回答
106 浏览

c++ - boost phoenix new_的地图?

我有以下工厂功能:

此代码无法编译,请注意我使用的是 C++03。我在这里尝试做的是创建字符串到可以分配特定类型对象的小函数对象的映射。每个对象都有一个相同类型的构造参数 ( CPathModel const&)。

phx::new_有几个重载,所以直接引用它可能不是最好的主意,但我希望每个人都可以帮助我找到一种方法来使用 boost::phoenix 来清理这段代码并使映射工作优雅。

在这一点上,似乎更容易定义一个带有重载()运算符的小型模板类,该运算符接受参数并在new T(p1)内部执行。但这是样板文件,看起来很简单,提升必须在某个地方有一个很好的解决方案......

0 投票
2 回答
218 浏览

c++ - 指向重载强制转换运算符的指针?

假设我有以下课程:

如果可能,如何创建指向此重载强制转换运算符的函数指针?

基本上我想使用 boost::phoenix 来调用这个操作符。我假设我需要绑定到它(因此我需要创建一个指向它的函数指针),但是如果 boost::phoenix 内置了以特殊方式调用它的功能,我也对此持开放态度。

我正在使用 Visual Studio 2008,C++03。

0 投票
3 回答
538 浏览

c++ - 我的 boost phoenix 懒惰功能有什么问题?

我有以下代码(在 MSVC9 上使用 boost 1.55):

我收到一个关于 的编译器错误pair_first_impl::result::type,它说:

出于某种原因,它看起来像是将函数类型(?)传递给我的TPair模板参数,而不是std::pair直接传递类型。

谁能帮我弄清楚我在这里做错了什么?

0 投票
2 回答
839 浏览

c++ - boost::transform() 仅当添加的值不为 NULL 时?

我有以下代码:

m_triggers是触发对象的指针向量:

如果调用CTriggerController::GetTrigger()返回 NULL(这意味着找不到该名称的触发器),我不想将任何内容推送到我的m_triggers向量。

有没有一种直接的方法可以通过对我上面的代码进行一些小的修改来做到这一点?

我在 MSVC9 上使用 Boost 1.55.0(仅限 C++03)

0 投票
1 回答
260 浏览

c++ - 未调用增强精神语义动作

我一直在尝试使用 Boost Spirit 解析字符串,如下所示:

其中 N 是 integer_count。例如,

代码如下:

输出是:

意思就是

从未被调用。那么有没有办法将整数运行时读入局部变量并使用该值进行进一步解析?

0 投票
1 回答
2046 浏览

c++ - 使用局部变量提升精神

我想根据以前解析的值定义一个规则,即输入字符串具有以下结构:D <double number>I <integer number>。无论第一个读取字符是D还是,我都将其保存在本地布尔变量中I。完整的代码是:

输出是:double Pass!!!它既不识别if语句,也不打印解析后的数字!

注意:我知道还有其他直接的方法可以解析上面的示例。我必须解析的实际字符串看起来很复杂,这个例子只是说明了我想要实现的目标。总体目标是使用局部变量并基于这些变量定义其他规则。

我使用了 4.6.1 和 Boost 1.55 版本。

0 投票
2 回答
1428 浏览

c++ - 提升语义动作中的精神变化变量值

我想更改语义操作中的局部变量值,如下所示:

我在使用 GCC 4.6.1 和 boost 1.55 时遇到了一些烦人的编译错误。