问题标签 [apply-visitor]

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 投票
1 回答
862 浏览

c++ - boost::apply_visitor 的返回类型是什么(延迟版)

在下面的代码中,我将延迟的结果存储apply_visitor在一个auto变量中。我可以用什么类型代替auto?可以使用std::function吗?

0 投票
2 回答
2591 浏览

c++ - Boost:将变体与 apply_visitor 进行比较

有人可以告诉我为什么下面代码的最后一行出现编译器错误吗?

注意:如果我删除以下行,我的代码将被编译且没有错误:

这是代码:

0 投票
1 回答
1924 浏览

c++ - Boost:为什么 apply_visitor 在此代码中不起作用

我收到以下编译器错误:

/usr/include/boost/variant/variant.hpp:832:32: error: no match for call to '(const StartsWith) (bool&)'</p>

对于以下代码。有人知道为什么吗?

0 投票
1 回答
512 浏览

c++ - 为什么这个二进制 apply_visitor 不起作用?

我收到此编译错误:

apply_visitor_unary.hpp:60:43: 错误:在“visitable”中请求成员“apply_visitor”,它是非类类型“int”</p>

我的代码有什么问题?

0 投票
0 回答
510 浏览

c++ - 是否可以将 boost::apply_visitor 的返回值存储在成员变量中?

是否可以将返回值存储boost::apply_visitor在类的成员变量中?
我需要让Test::Do功能正常工作,但不知道如何。

0 投票
1 回答
427 浏览

c++ - boost::variant 访问者选择了错误的重载

为什么会打印出以下内容"A boolean!"?我意识到正在进行一些奇怪的转换,因为如果我明确地构造一个 std::string 我会得到正确的行为。但是为什么visitor::operator()(bool)在以下情况下选择重载解析呢?

我正在运行 Visual Studio 2012(CTP 或不给出相同的结果)

0 投票
2 回答
283 浏览

c++ - boost::variant 访问者类是必需的吗?

class Visitor : public boost::static_visitor<>我是否需要使用带有 boost::variant的访问者类?

如果不是,是否有理由不使用访问者?有理由更喜欢访客班吗?

我问这个问题是因为访问者类对于 boost::variant 的使用来说是一个多余的方面。

0 投票
1 回答
992 浏览

c++ - 使用 apply_visitor 从变体向量中过滤

昨天我问了这个问题,“juanchopanza”回答了我的问题,但不幸的是我无法抓住其中一种有界类型。由于使用“访问者”更健壮,我也想知道有人可以使用“访问者”给我一个解决方案吗?

我正在寻找过滤 boost 变体向量的最佳方法,它的定义如下:

当我调用此向量时,仅过滤 T2 有界类型并插入新向量的最佳方法是什么?或者以其他方式,我想要这样的东西

std::vector<T2> T2Vec =...(如何使用apply_visitor从 Vec 过滤它)...

再次感谢!

编辑:@ ForEveR 的 solotion:

和:

你能告诉我这里有什么问题吗?

0 投票
1 回答
141 浏览

c++ - 从 boost::variant 中检索对象

我之前尝试过问我的问题,但我认为我问问题的方式不合适。所以我在这里再次尝试:(我仍然不知道什么主题合适)

首先我定义

我编写函数取决于它返回点、线、顶点甚至它们的组合的情况。

所以最后我们可能会有这样的东西 {ed, p0_modified, p0_modified, ed, m, ed, m, ed, p0_modified, p0_modified, ed, m, ....} {Line,Point,Point,Line,Vertex ,线,顶点,线,点,点,线,顶点, ...}

现在我在代码的另一部分(不同的文件)调用这个函数

我在这里调用了上面的函数:

0 投票
0 回答
893 浏览

c++ - 使用 boost::apply_visitor 时的 boost::variant 移动语义

当我尝试从另一个(常量折叠)构建一个 AST 时,我注意到在调用访问者时存在不必要的复制构造。但是,如果我们谈论 C++11/C++1y,则应该存在移动构造。

创建正确支持通用引用的访问者/多访问者版本是否有任何不可克服的困难?