apply-visitor

    7热度

    1回答

    为什么下面的打印出来"A boolean!"?我意识到有一些奇怪的转换正在进行,因为如果我明确地构造一个std :: string我会得到正确的行为。但为什么在以下情况下超载分辨率选择visitor::operator()(bool)? #include <boost/variant.hpp> #include <string> typedef boost::variant<bool, st

    1热度

    2回答

    我需要使用访客类,例如class Visitor : public boost::static_visitor<> with boost :: variant? 如果不是,有没有理由不使用访客?是否有理由选择访客课程? 我问这个问题,因为一个访问者类似乎是使用boost :: variant的一个冗余方面。

    3热度

    1回答

    在以下代码中,我将延迟apply_visitor的结果存储在auto变量中。我可以使用什么类型而不是auto?是否可以使用std::function? #include "boost/variant/variant.hpp" #include "boost/variant/apply_visitor.hpp" using namespace std; using namespace boo

    0热度

    2回答

    有人能告诉我为什么我在下面代码的最后一行出现编译器错误? 注:如果我删除以下行,我的代码被没有错误编译: appliedEqualityVisitor(compareValue); 下面是代码: #include "boost/variant/variant.hpp" #include "boost/variant/apply_visitor.hpp" using namespace s

    2热度

    1回答

    我得到以下编译器错误工作: /usr/include/boost/variant/variant.hpp:832:32: error: no match for call to ‘(const StartsWith) (bool&)’ 以下代码。有人知道为什么吗? #include "boost/variant/variant.hpp" #include "boost/variant/apply

    3热度

    1回答

    以下代码正确地将值999和“test”分配给控制台,但我该如何返回这些值?像评论界线这样的东西是我的最终目标;返回值然后我可以分配给一个自动变量(因为我不知道我将处理的类型)。我打算使用boost::lexical_cast将此值转换为std::string以将其插入到数据库的字段中。 我已经尝试过其他示例中访问者的各种变体,但没有成功,包括从基类派生DataMap,以便我可以将变量存储为成员。我

    1热度

    1回答

    我试图问我的问题之前,但我认为我问我的问题的方式是不正确的。所以我想在这里再次:(我仍然不知道是什么主题将是合适的) 第一,我定义 typedef boost::variant<point, Line, Vertex> vec_variant; typedef std::vector<vec_variant> vec; 在我写我的功能,使得依赖于它返回点,线的情况下, 顶点或甚至它们的组合。

    4热度

    1回答

    升压::变种,并促进这个简单的例子代码:: apply_visitor的:使用Boost版本 g++-mp-4.8 -MMD -DBOOST_ALL_DYN_LINK -DBOOST_SPIRIT_USE_PHOENIX_V3 -Wall -std=c++11 -Os -O3 -g -I/o\ pt/local/include -I./ -c tools/t6.cpp -o tools/buil

    3热度

    1回答

    #include <string> #include "boost/variant/variant.hpp" #include "boost/variant/apply_visitor.hpp" using namespace std; class Base { public: Base(){} ~Base(){} void AddField(int

    0热度

    1回答

    我面临着以下问题冗余代码: 我有升压一些游客::变种,它们都在做同样的特定类型,这里FOO,因此该方法 void operator()(const foo& ast) { //allways the same } 在每个访客中都是一样的。 由于我不想在所有访问者中编写这种冗余方法,我尽量避免为所有访问者添加一个实现此方法的通用基类。 问题的方法调用访问者本身recursivly,