gpt4 book ai didi

c++ - boost::function 和多参数成员函数

转载 作者:行者123 更新时间:2023-11-30 01:30:30 26 4
gpt4 key购买 nike

我有以下 boost::function 对象的定义:

typedef boost::function<std::string (std::string, std::string)> concat;

我将此函数作为结构构造函数参数传递:

struct add_node_value_visitor : boost::static_visitor<>
{
typedef boost::function<std::string (std::string, std::string)> concat;
add_node_value_visitor(concat _func, std::string key) : _func_concat(_func), _key(key) {}

template <typename T>
void operator() ( const T& value) const
{
std::string result = _func_concat(boost::lexical_cast<std::string, T>(value), _key);
}

std::string _key;
concat _func_concat;
};

现在我需要通过 struct add_node_value_visitor到以下功能,但是 boost::function<T>不接受 2 arg 成员函数,在文档中它说我应该使用 boost::bind,但是我不确定我会怎么做,因为我还必须满足我的 boost::apply_visitor 函数。

boost::apply_visitor( add_node_value_visitor( &Decomposer::ConcatValues, key), var); // ConcatValues takes 2 args, var = boost::variant


std::string ConcatValues(std::string str, std::string key);

有什么想法吗?

最佳答案

没有看到 ConcatValue 的声明很难准确,但你想要这样的东西:

boost::bind(&Decomposer::ConcatValues, some_decomposer_instance, _1, _2)

关于c++ - boost::function 和多参数成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4399524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com